Сбор Maven: добавьте другую версию того же артефакта

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

Теперь мне нужно включить две или более версии одного и того же артефакта.

Если в моем пом, я ставлю

 [...]  db.test my-model 1.0.3   db.test my-model 1.1.0   

Из источника зависимый резольвер удаляет старую версию, и только 1.1.0 упаковывается в архив

Я пытаюсь включить банку, используя файл дескриптора xml. И я не нашел решения.

Возможным решением будет вручную поместить все необходимые model.jar в папку и сообщить сборке скопировать его в архив. Но я ищу более настраиваемое решение.

Есть идеи ?

Я нашел решение, используя плагин maven-dependency для копирования разрешенных зависимостей pom и дополнительной банки.

  org.apache.maven.plugins maven-dependency-plugin 2.1   copy-dependencies package  copy-dependencies   ${project.build.directory}/lib false false true runtime    copy-model package  copy     my.test.pkg my-model server 1.0.3 jar   my.test.pkg my-model server 1.1.0 jar   ${project.build.directory}/lib    во  org.apache.maven.plugins maven-dependency-plugin 2.1   copy-dependencies package  copy-dependencies   ${project.build.directory}/lib false false true runtime    copy-model package  copy     my.test.pkg my-model server 1.0.3 jar   my.test.pkg my-model server 1.1.0 jar   ${project.build.directory}/lib    

Теперь мне просто нужно добавить следующие строки в моей сборке xml

   ${project.build.directory}/lib /lib false  *.jar  0600  в   ${project.build.directory}/lib /lib false  *.jar  0600  

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

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

Еще одним уродливым решением может быть использование оверлей WAR-файлов, использующих тот факт, что этот механизм не обращает внимания на версии компонентов JAR-файлов при применении наложений.

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

  • Использование проектов Maven для C / C ++
  • Interesting Posts

    запуск макроса excel из другой книги

    Является ли регистр C # нечувствительным к оператору?

    Вентилятор центрального процессора Sony Vaio работает на полной скорости после установки предварительного просмотра Windows 8.1

    Ошибка Apple Mach-O Linker при компиляции для устройства

    Меню диспетчера задач, панель заголовка и вкладки исчезли

    Какое программное обеспечение доступа (экранные программы) предназначено для окон?

    Каков самый быстрый способ слияния / объединения data.frames в R?

    Совместим ли Sass 3.3 с Compass?

    Как увеличить количество столбцов с помощью R в Linux

    Какая наименее противоречивая префикс / escape-последовательность для экрана или tmux?

    jquery, добавить / удалить class при изменении ширины windows

    Разъем передней панели не включается

    Проверка формы jQuery при нажатии кнопки

    Цвет кнопки UIActionSheet

    Как я могу «открыть» файл из WSL с помощью приложения по умолчанию?

    Давайте будем гением компьютера.