Я использую ant + ivy + nexus для сборки и публикации моих java OSGi проектов (просто старые добрые jar, если вы не знакомы с OSGi). После обычного периода плавления ума, который возникает при использовании новых технологий, у меня появляется в основном функциональная система. Но теперь у меня есть два измерения вариации артефакта: снимок / выпуск и основной / тест.
Основное / тестовое измерение говорит само за себя. Снимок / выпуск важен для публикации в Nexus удобным для пользователя способом. (Чрезвычайно полезен для интеграции с OSGi с открытым исходным кодом). Итак, у меня есть следующие артефакты для каждого проекта, и у меня много много проектов:
- project-revision.xml (bp)
- project-test-revision.xml (b)
- project-revision-SNAPSHOT.xml (bp)
- project-test-revision-SNAPSHOT.xml (b)
b = успешно строится
p = успешно опубликовано
(Я еще не получил тестовую публикацию правильно)
Мне потребовалось некоторое время, чтобы пройти этот путь без дублирования кода повсюду в моих сценариях сборки, но я справился с этим ... с одной большой оговоркой. Для ветки SNAPSHOT я добавляю "-SNAPSHOT" ко всем ревизиям. В муравье мне удается достичь этого программно, но для плюща я использую дублированный файл ivy.xml; плющ SNAPSHOT.xml. Это имеет
<info ... revision="x.x-SNAPSHOT">
Обратите внимание на -SNAPSHOT. Без этого я бы никогда не смог получить свой
<ivy:deliver>
<ivy:resolve>
<ivy:publish>
цепочка команд для правильной публикации артефакта и maven pom. (Помните, у меня есть требование сделать этого maven дружелюбным ... Будь я проклят, если на самом деле я использую maven для создания своего ума!)
Теперь я застрял, представляя тест / основное измерение. Я в идеале хочу опубликовать
project-test-revision(-SNAPSHOT).jar
(обратите внимание на дополнительный снимок). Я действительно не хочу делать это, указав
<info ... module="project-test" ... >
в отличие от <info ... module="project" ... >
в еще одном файле плюща. Если я пошел этим путем (как я уже начал), то я просто получаю множество файлов ivy-Option1-Option2 ...- OptionN.xml. При каждом новом двухзначном варианте удваивается количество файлов сборки и плюща. Это дерьмо. Должен быть лучший способ. Я просто не могу его найти.
Если вам удалось успешно получить артефакты публикации ivy с украшенными именами из одного файла ivy, не могли бы вы опубликовать фрагменты конфигурации, которые достигают этого? Было бы чрезвычайно полезно. (Не забывайте, что maven не будет знать о конфигурациях, поэтому мне нужно получить изменения в имени файла и pom).
Большое спасибо
Алистер