web-dev-qa-db-ja.com

Maven:マルチモジュールプロジェクトからモジュールを1つだけビルドする

マルチモジュールMavenプロジェクトがあり、プロジェクト全体ではなく、更新モジュールをリリースしたいだけです。これはいくつかの特定の要件によるもので、プロジェクト全体のリリースは不要です。ライブラリのサブセットのみが修正とリリースを必要とします。

ただし、mvn release:prepare次のエラーが表示されますNon-resolvable parent POM-モジュールプロジェクトでrelativePathタグを使用して親POM関係を設定しましたが、うまくいかないようです。

プロジェクト全体をリリースするのではなく、モジュールのみをリリースすることは可能ですか?.

前もって感謝します。

[〜#〜] edit [〜#〜]

親ポン

<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>

今、私はlibrary1の新しいバージョンをリリースしたいだけで、他のものはリリースしません

21
sangupta
mvn -pl .,library1 clean install

「。」親pom.xmlを構築し、「library1」は指定したモジュール名です。

親pom.xmlをビルドしたくない場合は、次のこともできます。

mvn -pl library1 clean install

またはあなたの場合、多分:

mvn -pl library1 deploy

「リリース」はMavenビルドライフサイクルフェーズではないため、「デプロイ」を使用しました。

24
Gene

-pl <project name>スイッチ を使用して、親プロジェクト/ディレクトリからmavenコマンドを実行してみてください。

9
matt b

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: :
0
Konstantin