превратите простую банку в банку maven с внутренним pom.xml для Artifactory

Мне нужно использовать xyz.jar, созданный с помощью ant. Следовательно, транзитивные зависимости отсутствуют. Итак, у меня возникла идея изменить xyz.jar, чтобы добавить внутренние файлы META-INF / maven / groupId / artifactId / pom.xml и pom.properties.

Когда я развернул его в Artifactory, он проигнорировал их и сгенерировал собственный pom.xml без зависимостей.

Что делать, Artifactory развертывает pom.xml, лежащий в той же папке, что и файл xyz.jar?

Потеряли слишком много времени на это уже ...


person andreas    schedule 12.04.2011    source источник
comment
Почему бы не использовать Ivy для обработки зависимостей или вместо этого использовать Maven.   -  person khmarbaise    schedule 12.04.2011
comment
Я использую maven для своего проекта, которому нужен xyz.jar, созданный с помощью ant. Я хочу сообщить artifactory / maven, которые являются транзитивными зависимостями, которые нужны xyz.jer, без добавления транзитивных зависимостей в мой проект pom.xml   -  person andreas    schedule 12.04.2011
comment
Вы должны создать pom с зависимостями для вашего xyz.jar, иначе он не будет работать. Вы можете создать этот pom вручную и добавить его в свой проект Ant, а во время развертывания вы также можете добавить pom.   -  person khmarbaise    schedule 12.04.2011


Ответы (3)


Скорее всего, Artifactory пропускает развертывание внутреннего POM, потому что он не может прочитать физический размер POM из архива (сделано по историческим причинам); Вы можете проверить это, посмотрев в журнал на наличие предупреждающего сообщения следующего содержания:

«Внутри zip-архива найден файл pom.xml размером -1. Игнорирует»

Если вы уже дошли до создания настраиваемого файла POM, вы можете вставить его содержимое в редактор содержимого POM средства развертывания артефактов или развернуть его независимо; хотя первый вариант даст вам возможность автоматически определять координаты развертывания для файла JAR.

person noamt    schedule 12.04.2011
comment
Я просмотрел файлы журнала tomcat, но не нашел записи, похожей на ту, которую вы здесь упомянули. Мэйби, я попробую позже, но я нахожусь в самом конце фазы проекта, только рад, что он работает сейчас .... - person andreas; 13.04.2011

Возможно, было бы лучше добавить его зависимости в ваш pom вместо того, чтобы настраивать стороннюю библиотеку для использования maven.

При этом убедитесь, что ваш pom.xml является действительным XML (большинство современных IDE могут проверять xml за вас) и убедитесь, что ваш файл свойств включает версию, идентификатор группы и идентификатор артефакта.

Artifactory изменил способ обработки генерации POM в разных версиях, поэтому, в зависимости от вашей версии, у вас может быть какая-то опция генерации pom, которую вы должны отключить при развертывании. Я думаю, что у них есть редактор времени развертывания или что-то в этом роде в более новых версиях.

person Jon7    schedule 12.04.2011
comment
это собственная библиотека, так что это не так уж и плохо. когда мне придется принять его в один прекрасный день, возможно, я перенесу его на настройку maven ... - person andreas; 13.04.2011

измените муравья, который создает xyz.jar для создания работоспособного jar - jar должен иметь все свои зависимости, упакованные внутри (создайте каталог lib в своем проекте xyz и поместите все jar-файлы, зависящие от xyz, внутри этого каталога, затем экспортируйте свой проект в jar со всеми библиотеками, упакованными внутри) хороший пошаговый пример создания муравьиного скрипта можно найти здесь.

удачи!

person aviad    schedule 13.04.2011