Как создать кросс-исходную версию проекта с Maven - PullRequest
0 голосов
/ 11 ноября 2010

У меня есть проект, для которого мне нужно выпустить исходный код. У меня проблема в том, что мне нужно создать исходную версию для всего кода, который мы разработали. Код распространяется на несколько проектов, но я хочу использовать maven, чтобы был выпущен только исходный код для файлов, которые мы фактически используем.

Например:

  • основной код проекта (многомодульный проект maven)
  • проект веб-приложения (мультимодульный проект maven). Содержит модуль приложения и несколько вспомогательных модулей jar. Зависит от некоторых jar-файлов из основного кода проекта.

Теперь я хочу выпустить весь исходный код проекта веб-приложения, но только исходный код для проекта основного кода, который использует веб-приложение.

Могу ли я сделать это с Maven?

У меня такое ощущение, что это возможно с плагином сборки и плагином исходного кода, но мне не совсем понятно, как это собрать.

Ответы [ 3 ]

3 голосов
/ 11 ноября 2010

Прежде всего, ваш вопрос немного неясен.позвольте мне принять определенные вещи и продолжить.Я полагаю, что следующая структура вашей папки:

  • проект веб-приложения
    • некоторая папка с исходным кодом
    • pom.xml
  • основной код проекта
    • некоторая папка с исходным кодом
    • pom.xml

Возьмите основной код проекта и измените версию с предыдущейверсия в pom.xml.скажем, если это было 1.0, измените его на 1.1

 <groupId>core code project related</groupId>
  <artifactId>core code project</artifactId>
  <name>core code</name>
  <version>1.1</version>

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

позже, в проекте веб-приложения добавьте зависимость дляосновной код проекта в pom.xml

  <dependency>
     <groupId>core code project related</groupId>
     <artifactId>core code project</artifactId>
     <name>core code</name>
     <version>1.1</version>
  </dependency>

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

1 голос
/ 11 ноября 2010

У меня такое чувство, что это возможно с плагином сборки и плагином исходного кода, но мне не ясно, как это собрать.

Если я правильно понял вопрос, одно решениебыло бы создать проект «агрегатора», в котором перечислены все требуемые модули (соответствующие модули из веб-приложения и соответствующие модули из ядра) и использовать цель source:aggregate из исходного модуля Maven.

0 голосов
/ 11 ноября 2010

Я не уверен, почему вы хотите это сделать, pom из вашего проекта веб-приложения явно перечислит версии используемых вами зависимостей кода, чтобы вы могли легко найти источник.Похоже, вы хотите хранить один и тот же артефакт дважды.Так что, если ваше веб-приложение использует core-x-1.2.3.jar и core-y-4.5.6.jar, вы получите артефакты источников веб-приложений, содержащие источник из обоих этих jar-файлов в дополнение к фактическому источнику веб-приложения?

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

...