[英]Subversion and Ant integration
我正在運行以下方案: Ant構建Java代碼,並使用soscmd API / utility從SourceSafe系統檢索源。 我知道它們已經緊密集成。 我正在使用的Ant版本是1.6。 因此,該版本不支持Subversion。 我的Subversion服務器作為服務在遠程計算機上運行,我希望Ant能夠使用Subversion檢索源。 我該怎么做?
使用這里提供的SvnAnt任務- http://subclipse.tigris.org/svnant.html
一旦您獲得了豐富的資料,這些詳細信息可能會為您提供其他幫助。
我通常要做的是從該提取中獲取以下JAR:
並將它們添加到我的項目中尚未部署的文件夾中(即,它們僅由構建使用,而不是運行時使用)。
然后在我的ANT腳本中添加:
<path id="svntask.classpath">
<fileset dir="nonruntime_lib/svn">
<include name="*.jar"/>
</fileset>
</path>
接着:
<!-- SVN typedef -->
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml"
classpathref="svntask.classpath"/>
然后,我可以添加任務調用,例如:
<!-- svn export the web root & java -->
<svn>
<export srcUrl="http://your.svn/web" destPath="dist/web"/>
<export srcUrl="http://your.svn/src" destPath="tmp/src"/>
</svn>
不知道是否需要所有這些JAR,但是“它們對我有用”。 祝您好運,並隨時提出其他問題/方案。
編輯
我不確定這是否適用於Subversion 1.7(我正在運行1.6)。
好的,這只是部分解決方案。 由於某些原因,除了上面的說明之外,我還需要確保已安裝SilkSVN。 我不確定為什么會這樣。 不幸的是,我現在沒有時間進行調查。
正如下面兩個答案所提到的,您可以使用SvnAnt。 並且我建議將SvnKit指定為SvnAnt任務的svn客戶端。
SvnKit是一個純Java svn客戶端,流行的gui svn客戶端SmartSVN使用它作為基礎。 因此,如果您要編寫自己的任務,或者僅使用某些beanshell集成,則應嘗試svnkit。 只要擁有JRE,它也可用於Windows,Linux,Mac OS...。
聚苯乙烯
我曾經是SvnAnt用戶,但現在我使用自己的代碼來調用本地svn客戶端,因為我只需要使用“ svn信息”和“ svn更新”。
我使用exec調用本地Linux svn客戶端來更新主干:
<exec executable="svn" dir="${trunk.dir}" failonerror="true">
<arg line="update -r ${to.rev} --username ${trunk.user} --password ${trunk.passwd} --depth infinity" />
</exec>
我使用流程生成器來調用“ svn信息”,並從輸出中獲取實際的修訂版號(一個自定義ant任務):
//java code for ant task
public void execute() throws BuildException {
//varible verifying codes ignored......
ProcessBuilder pb = new ProcessBuilder("svn","info");
//The native "svn" client doesn't support symbol link, so run it in the directory instead of specifying the directory as svn info's parameter.
pb.directory(_dirToTrunk);
//Make sure the output is English.
Map<String, String> env = pb.environment();
env.put("LANGUAGE","en_US.UTF-8:en");
Process p = null;
try {
p = pb.start();
//then get the output and parse the svn revision number.
}
//catch codes ignored
}
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.