Ответ 1
Попробуйте запустить команды maven из родительского проекта/каталога с ключ -pl <project name>
.
У меня есть мультимодульный проект Maven, в котором я просто хочу выпустить модуль обновления, а не весь проект. Это связано с некоторыми конкретными требованиями, в которых выпуск целого проекта невостребован для - только подмножество библиотеки нуждается в исправлениях и, следовательно, в выпуске.
Однако, когда я запускаю mvn release:prepare
, я получаю следующую ошибку Non-resolvable parent POM
- Я установил родительскую связь POM в проекте модуля с тегом relativePath
, но это, похоже, не работает.
Можно ли освободить только модуль, а не освободить весь проект.
Спасибо заранее.
ИЗМЕНИТЬ
Родительский pom
<groupId>com.domain</groupId>
<artifactId>project-parent</artifactId>
<version>0.5.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>library1</module>
<module>library2</module>
<module>library3</module>
</modules>
Модули POM имеют значения:
<parent>
<groupId>com.domain></groupId>
<artifactId>project-parent</artifactId>
<version>0.5.1-SNAPSHOT</version>
</parent>
<artifactId>library1</artifactId>
Теперь я просто хочу выпустить новую версию библиотеки1, а не другие
Попробуйте запустить команды maven из родительского проекта/каталога с ключ -pl <project name>
.
mvn -pl .,library1 clean install
"." построит ваш родительский pom.xml, а "library1" - это имя модуля, которое вы ему дали.
Если вы не хотите создавать родительский pom.xml, вы также можете:
mvn -pl library1 clean install
или в вашем случае, может быть:
mvn -pl library1 deploy
Я использовал "deploy", потому что "release" не является фазой жизненного цикла сборки Maven.
Я думаю, что maven пытается сказать вам, что родитель, которого вы определили, не выпущен/стабилен. В вашем pom родительская версия - "0.5.1-SNAPSHOT", которая не может/не должна работать, если вы хотите выпустить единый библиотечный модуль, поскольку он будет указывать на то, что не определено однозначно. Есть ли стабильная версия, на которую вы можете указать? В противном случае, возможно, переключатель -am работает в комбинации с -pl?
Я попробовал это только сейчас с maven 3.2, и он спрашивает меня, для какой версии должен быть установлен/разрешен родитель. Как я уже говорил, вам нужны стабильные номера версий для выпуска, чтобы работать
mvn release:prepare -pl library1
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building library1 1.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-release-plugin:2.3.2:prepare (default-cli) @ library1 ---
[INFO] Verifying that there are no local modifications...
[INFO] ignoring changes on: **\release.properties, **\pom.xml.next, **\pom.xml.releaseBackup, **\pom.xml.backup, **\pom.xml.branch, **\pom.xml.tag [INFO] Executing: cmd.exe /X /C "git status"
[INFO] Working directory: C:\temp\mavenTest\library1
[INFO] Checking dependencies and plugins for snapshots ...
There are still some remaining snapshot dependencies.
: Do you want to resolve them now? (yes/no) no: : yes
Dependency type to resolve,: specify the selection number ( 0:All 1:Project Dependencies 2:Plugins 3:Reports 4:Extensions ): (0/1/2/3) 1: : 1
Dependency 'testme:parent' is a snapshot (1.1-SNAPSHOT)
: Which release version should it be set to? 1.1: :