Maven: Создайте только один модуль из многомодульного проекта

У меня есть мультимодульный проект 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, а не другие

Ответ 1

Попробуйте запустить команды maven из родительского проекта/каталога с ключ -pl <project name>.

Ответ 2

mvn -pl .,library1 clean install

"." построит ваш родительский pom.xml, а "library1" - это имя модуля, которое вы ему дали.

Если вы не хотите создавать родительский pom.xml, вы также можете:

mvn -pl library1 clean install

или в вашем случае, может быть:

mvn -pl library1 deploy

Я использовал "deploy", потому что "release" не является фазой жизненного цикла сборки Maven.

Ответ 3

Я думаю, что 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: :