Прежде всего, Ant старше, чем Maven, и поэтому не включает основную поддержку управления зависимостями.
Добавление плющ
Ivy является основой управления зависимостей для Ant
http://ant.apache.org/ivy/
Чтобы включить его вам нужно сделать две вещи. Во-первых, включают пространство имен плющ задач в верхней части файла сборки:
<project .... xmlns:ivy="antlib:org.apache.ivy.ant">
во-вторых, вам нужно установить плющ банку в один из стандартных мест, используемых ANT для его 3rd расширения партии:
- $ ANT_HOME/Библиотека
- $ HOME/.ant/Библиотека
Я хотел бы сделать мой строит автономные так включать в себя цель, которая делает это для меня автоматически:
<available classname="org.apache.ivy.Main" property="ivy.installed"/>
<target name="install-ivy" description="Install ivy" unless="ivy.installed">
<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"/>
<fail message="Ivy has been installed. Run the build again"/>
</target>
Использование плющ
Это очень обширная тема, следующий простой пример, чтобы загрузить гибернации банку и его зависимости:
<target name="resolve" depends="install-ivy" description="Use ivy to resolve classpaths">
<ivy:cachepath pathid="compile.path">
<dependency org="org.hibernate" name="hibernate" rev="3.2.7.ga" conf="default">
<exclude org="javax.transaction"/>
</dependency>
</ivy:cachepath>
</target>
производит следующий вывод:
resolve:
[ivy:cachepath] :: Apache Ivy 2.3.0 - 20130110142753 :: http://ant.apache.org/ivy/ ::
[ivy:cachepath] :: loading settings :: url = jar:file:/home/mark/.ant/lib/ivy.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:cachepath] :: resolving dependencies :: #;[email protected]
[ivy:cachepath] confs: [default]
[ivy:cachepath] found org.hibernate#hibernate;3.2.7.ga in public
[ivy:cachepath] found net.sf.ehcache#ehcache;1.2.3 in public
[ivy:cachepath] found commons-logging#commons-logging;1.0.4 in public
[ivy:cachepath] found asm#asm-attrs;1.5.3 in public
[ivy:cachepath] found dom4j#dom4j;1.6.1 in public
[ivy:cachepath] found antlr#antlr;2.7.6 in public
[ivy:cachepath] found cglib#cglib;2.1_3 in public
[ivy:cachepath] found asm#asm;1.5.3 in public
[ivy:cachepath] found commons-collections#commons-collections;2.1.1 in public
[ivy:cachepath] :: resolution report :: resolve 373ms :: artifacts dl 10ms
[ivy:cachepath] :: evicted modules:
[ivy:cachepath] commons-collections#commons-collections;2.1 by [commons-collections#commons-collections;2.1.1] in [default]
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 10 | 0 | 0 | 1 || 9 | 0 |
---------------------------------------------------------------------
Этот управляемый плющ способ может быть использован в вашей задаче javac
<javac includeantruntime="false" srcdir="./src" destdir="staging" classpathref="compile.path"/>
Вы можете использовать ant '' для добавления зависимостей, или вы можете использовать инструмент, например, apache ivy. –
Viraj
Используя maven, я могу добавить зависимость от maven repository.is это возможно с помощью инструмента ANT. –
С плющом вы можете использовать репозиторий maven. см. http://ant.apache.org/ivy/history/latest-milestone/tutorial/start.html – Viraj