Использование Maven для создания JAR из источника в стволе Subversion - PullRequest
2 голосов
/ 11 апреля 2010

Есть библиотека Java, которую я хотел бы использовать в своем проекте. Мой проект использует Maven для извлечения зависимостей, и он отлично работает для всего, кроме этой библиотеки. Проблема в том, что эта библиотека никогда не выпускает релизы. Автор поддерживает источник в хранилище Subversion и вносит изменения только в транк.

Есть ли способ, которым я могу сказать Мейвену

  1. Обновить (или проверить) исходное дерево библиотеки из Subversion
  2. Постройте его в соответствии с его POM
  3. Использовать полученный jar как зависимость для этого проекта
  4. Делайте это регулярно (возможно, при каждой сборке)
  5. Для бонусных баллов отметьте, какую версию Subversion той библиотеки я хочу использовать

Спасибо!

Ответы [ 5 ]

0 голосов
/ 12 апреля 2010

В интересах создания воспроизводимой сборки, я бы порекомендовал проверить и собрать проект с открытым исходным кодом самостоятельно и установить его в свой репозиторий Maven. Таким образом, вы можете ссылаться на конкретную версию в вашем POM, поэтому ваша сборка всегда будет воспроизводимой.

0 голосов
/ 11 апреля 2010

Вы можете попытаться использовать Hudson, решение для непрерывной интеграции с подключаемым модулем Subversion для периодической проверки источника.

После того, как Хадсон успешно проверит источник, вы можете разрешить ему запустить модифицированный Ant-скрипт для создания источника и его развертывания в вашем локальном / удаленном репозитории Maven.

0 голосов
/ 11 апреля 2010

Делайте вещи с открытым исходным кодом:

Вы можете связаться с автором библиотеки. Могу поспорить, что он рад получить обратную связь. Дайте ему знать, что вам нужно, он может просто сделать это. Или предложите помощь в создании библиотеки или помощь в выпуске. Таким образом, другие пользователи также получают прибыль.

Как разработчик некоторых проектов с открытым исходным кодом, мне нравятся такие отзывы.

0 голосов
/ 11 апреля 2010

Если вы что-то не контролируете, вы не можете ... контролировать это. Итак, я бы:

  • извлечение источников из репозитория проекта
  • поставить их под контроль версий в вашем vcs
  • построить релиз (и пометить библиотеку в вашем vcs)
  • распространять выпущенный артефакт через корпоративный репозиторий

Вы действительно не хотите автоматизировать это больше, чем это (что, если автор совершает что-то, что нарушает ваш код, что если вам нужно исправить ошибку в выпущенной версии вашего кода, но вы не можете использовать точно такую ​​же библиотека). Поставьте его под контроль исходного кода и управляйте выпуском самостоятельно.

0 голосов
/ 11 апреля 2010

Не будет ли гораздо более простым, но эффективным решением следующее:

  • вы пишете сценарий оболочки / файл bat, который проверяет исходный код, создает артефакт и развертывается в репозиторий maven под вашим контролем.
  • Используя зависимость снимка, вы получите временную метку в артефакте, гарантирующую, что каждая сборка вашего проекта использует последнюю версию артефактов, и вам вообще не придется обновлять pom.xml вашего проекта.
  • вы можете использовать задачу ant в файле pom.xml вашего проекта, которая будет подключаться к циклу сборки проекта и выполнять сценарий оболочки, который создает и развертывает артефакт.
...