Maven: версии: обновление-родитель, за которым следует установка, устанавливает старую версию

У меня есть два следующих проекта maven

pom.xml (parent)

--

pom.xml (aggregate, extends parent)
|
|--pom.xml (module, extends aggregate)

Единственное место, где определена версия артефакта, — это родительский объект. Другие проекты или их модули наследуют версию прямо или косвенно от родителя. Я хочу автоматически сопоставлять совокупную версию и версии ее модулей с родительскими.

После того, как я обновил родительскую версию и mvn install ее, я пытаюсь использовать versions-maven-plugin для обновления совокупного проекта и его модулей, чтобы они соответствовали новому родителю с помощью следующей команды:

mvn versions:update-parent versions:update-child-modules clean install

Родительский агрегат и родительские модули обновлены правильно, однако цель установки по-прежнему устанавливает версию до изменений, внесенных version-maven-plugin. Если я хочу установить обновленную версию, мне нужно вызвать mvn clean install отдельно после плагина versions. Почему install не выбирает изменения, сделанные плагином versions, в той же команде? Я также пытался включить versions:commit безрезультатно. Вот журнал сборки, чтобы показать, что происходит.

tutoivon@IT-L-R90HKRNH MINGW64 ~/Desktop/mavenversiontest/aggregate (master)
$ mvn versions:update-parent versions:update-child-modules clean install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] aggregate
[INFO] module
[INFO] submodule
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building aggregate 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.4:update-parent (default-cli) @ aggregate ---
[INFO] Updating parent from 1.0.0 to 2.0.0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building module 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.4:update-parent (default-cli) @ module ---
[INFO] Project's parent is part of the reactor
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building submodule 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.4:update-parent (default-cli) @ submodule ---
[INFO] Project's parent is part of the reactor
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building aggregate 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.4:update-child-modules (default-cli) @ aggregate ---
[INFO] Module: module
[INFO]     parent was fi.tuomas.testi:aggregate:1.0.0
[INFO]     updated to fi.tuomas.testi:aggregate:2.0.0
[INFO] Module: module/submodule
[INFO]     parent was fi.tuomas.testi:module:1.0.0
[INFO]     updated to fi.tuomas.testi:module:2.0.0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building aggregate 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ aggregate ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ aggregate ---
[INFO] Installing C:\Users\tutoivon\Desktop\mavenversiontest\aggregate\pom.xml to C:\Users\tutoivon\.m2\repository\fi\tuomas\testi\aggregate\1.0.0\aggregate-1.0.0.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building module 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ module ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ module ---
[INFO] Installing C:\Users\tutoivon\Desktop\mavenversiontest\aggregate\module\pom.xml to C:\Users\tutoivon\.m2\repository\fi\tuomas\testi\module\1.0.0\module-1.0.0.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building submodule 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ submodule ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ submodule ---
[INFO] Installing C:\Users\tutoivon\Desktop\mavenversiontest\aggregate\module\submodule\pom.xml to C:\Users\tutoivon\.m2\repository\fi\tuomas\testi\submodule\1.0.0\submodule-1.0.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] aggregate .......................................... SUCCESS [  0.125 s]
[INFO] module ............................................. SUCCESS [  0.010 s]
[INFO] submodule .......................................... SUCCESS [  0.011 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.626 s
[INFO] Finished at: 2017-09-05T11:03:49+03:00
[INFO] Final Memory: 15M/303M
[INFO] ------------------------------------------------------------------------

tutoivon@IT-L-R90HKRNH MINGW64 ~/Desktop/mavenversiontest/aggregate (master)
$ mvn clean install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] aggregate
[INFO] module
[INFO] submodule
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building aggregate 2.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ aggregate ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ aggregate ---
[INFO] Installing C:\Users\tutoivon\Desktop\mavenversiontest\aggregate\pom.xml to C:\Users\tutoivon\.m2\repository\fi\tuomas\testi\aggregate\2.0.0\aggregate-2.0.0.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building module 2.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ module ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ module ---
[INFO] Installing C:\Users\tutoivon\Desktop\mavenversiontest\aggregate\module\pom.xml to C:\Users\tutoivon\.m2\repository\fi\tuomas\testi\module\2.0.0\module-2.0.0.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building submodule 2.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ submodule ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ submodule ---
[INFO] Installing C:\Users\tutoivon\Desktop\mavenversiontest\aggregate\module\submodule\pom.xml to C:\Users\tutoivon\.m2\repository\fi\tuomas\testi\submodule\2.0.0\submodule-2.0.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] aggregate .......................................... SUCCESS [  0.333 s]
[INFO] module ............................................. SUCCESS [  0.012 s]
[INFO] submodule .......................................... SUCCESS [  0.012 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.448 s
[INFO] Finished at: 2017-09-05T11:04:10+03:00
[INFO] Final Memory: 7M/240M
[INFO] ------------------------------------------------------------------------

person Tuomas Toivonen    schedule 05.09.2017    source источник


Ответы (1)


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

Этапы выполнения maven очень хорошо объяснены в этом ответе SO . См., в частности, шаг 7.

person gjoranv    schedule 11.12.2017