[英]How to add Ivy to Ant dynamically
通常,要使Ivy任務可用於Ant構建,您需要:
ivy.jar
添加到${ANT_HOME}/lib
。 xmlns:ivy="antlib:org.apache.ivy.ant"
聲明添加到build.xml的<project>
元素中。 <taskdef>
聲明,引用ivy.jar
的antlib.xml
文件,其中定義了所有其他任務。 除了第一步(將ivy.jar
添加到${ANT_HOME}/lib
) 之外 ,我想完成上述所有操作。 我想讓ivy.jar
住在我的項目中的某個地方,例如,在lib/buildtime/ivy.jar
,並以某種方式引用lib/buildtime/ivy.jar
作為Ivy所在的位置。
這可能嗎? 如果是這樣,怎么樣? 如果沒有,為什么? 提前致謝!
如果常春藤罐位於標准ANT庫目錄中,則不需要taskdef(步驟3)。
我建議包括一個特殊的“bootstrap”目標,它將安裝常春藤罐。 完成此操作后,ivy可以將所有其他依賴項(包括第三方ANT任務)作為構建依賴項下載。
這是我的默認構建文件,演示了這個概念:
<project name="demo" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="bootstrap" description="Install ivy">
<mkdir dir="${user.home}/.ant/lib"/>
<get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar"/>
</target>
<target name="resolve" description="Use ivy to resolve classpaths">
<ivy:resolve/>
<ivy:report todir='build/ivy-reports' graph='false' xml='false'/>
<ivy:cachepath pathid="compile.path" conf="compile"/>
<ivy:cachepath pathid="test.path" conf="test"/>
</target>
<target name="clean" description="Cleanup build files">
<delete dir="build"/>
</target>
<target name="clean-all" depends="clean" description="Additionally purge ivy cache">
<ivy:cleancache/>
</target>
</project>
筆記:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.