2010-04-11 2 views
2

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

Есть ли способ, что я могу сказать Maven для

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

Спасибо!

ответ

0

Если вы ничего не контролируете, вы не можете ... управлять им. Так что я бы:

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

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

+0

Это звучит как разумная вещь. Будете ли вы поддерживать его отдельно или вводить в качестве подмодуля? – Anonymoose

+0

@Anonymouse Отдельно. Вам не нужно создавать его как часть вашего проекта, это будет замедлять работу. Просто используйте двоичную зависимость (на банке). –

0

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

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

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

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

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

0

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

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

0

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

Смежные вопросы