Существует новый набор задач Ant, использующих Mercury. Mercury — это рефакторинг кода, который станет основой взаимодействия Maven 3 с репозиториями Maven (и OSGi), реализуемого Олегом Гусаковым. Mercury хорошо протестирован, и вы можете начать использовать его в проектах Ant уже сегодня. Взгляните на некоторые из практических документов, которые написал Олег:
http://people.apache.org/~ogusakov/sites/mercury-ant/mercury-ant-tasks/howto.html
Вот простой пример использования Mercury в файле Ant build.xml. Следующий файл сборки создает путь к классам, который зависит от версии 3.0 артефакта asm:
<javac srcdir="src/main/java"
destdir="target/classes">
<classpath>
<deps>
<dependency name="asm:asm:3.0"/>
</deps>
</classpath>
</javac>
Существует множество дополнительных функций, таких как поддержка проверки подписей PGP или дайджестов MD5. Вы также можете начать определять различные репозитории, от которых зависит Mercury. Этот XML позволяет определить ссылку на репозиторий, такой как Nexus, в дополнение к использованию локального каталога в качестве репозитория:
<repo id="myCentral"
url="http://localhost:8081/nexus/contengs/groups/public"/>
<repository dir="/my/local/repo"/>
<javac srcdir="src/main/java"
destdir="target/classes">
<classpath>
<deps>
<dependency name="asm:asm:3.0"/>
</deps>
</classpath>
</javac>
Если вам нужно сослаться на репозиторий, требующий аутентификации, Mercury поддерживает сохранение имени пользователя и пароля:
<repo id="myCentral"
url="http://localhost:8081/nexus/contengs/groups/public">
<auth name="foo" pass="bar"/>
</repo>
<javac srcdir="src/main/java"
destdir="target/classes">
<classpath>
<deps>
<dependency name="asm:asm:3.0"/>
</deps>
</classpath>
</javac>
Наиболее привлекательной является возможность публикации артефакта в репозитории из файла сборки Ant. Если вы работаете в организации любого масштаба, вам следует задуматься о развертывании артефактов в менеджере репозитория, таком как Nexus. С Mercury вы можете начать развертывание артефактов в менеджере репозитория без необходимости использования Maven. Вот файл сборки, который определяет аутентифицированный репозиторий и записывает артефакт:
<repo id="myCentral"
url="http://localhost:8081/nexus/contengs/groups/public">
<auth name="foo" pass="bar"/>
</repo>
<write repoid="myCentral"
name="t:t:1.0"
file="${basedir}/target/t.jar"/>
Меркурий готов к использованию, и вы можете ожидать от Олега много разработок в будущем. Если вы хотите начать его использовать, лучше всего посмотреть на Страница Олега с практическими рекомендациями. (Примечание: эта информация скоро будет включена в Полное руководство)
person
Tim O'Brien
schedule
31.03.2009