4

複数のプロジェクトを持つフラットなプロジェクト構造があります。内部リポジトリには Nexus を使用し、ソース コード管理には SVN を使用しています。SNAPSHOTプロジェクトのビルドをデプロイできます。

親の pom に、maven リリース プラグインを追加しました。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.1</version>
</plugin>

および配布情報:

<distributionManagement>
  <repository>
    <id>releases</id>
    <url>http://localhost:8081/nexus/content/repositories/releases</url>
  </repository>
  <snapshotRepository>
    <id>snapshots</id>
    <name>Internal Snapshots</name>
    <url>http://localhost:8081/nexus/content/repositories/snapshots</url>
  </snapshotRepository>
</distributionManagement>

を行っているときにmvn release:prepare、リリース バージョンのアーティファクトがリポジトリにデプロイされません。したがって、プロジェクト B に依存するプロジェクト A があるとします。プロジェクト A は、リリース バージョンで B のアーティファクトを取得できません。

4

1 に答える 1

11

release:prepare は、デフォルトで「クリーン」および「検証」ゴールを呼び出し、単にコンパイルしてテストを実行しようとします。したがって、リモート リポジトリには何もデプロイされず、ローカル リポジトリにもインストールされません。新しいリリース バージョンでマルチモジュール プロジェクトの依存関係を処理するには、release:prepare 中にローカル リポジトリにインストールする必要があるため、prepareGoals プロパティを使用してデフォルトの目標を「クリーン」および「インストール」に変更します。

<plugin>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.1</version>
    <configuration>
       <preparationGoals>clean install</preparationGoals>
    </configuration>
</plugin>

ビルド中に必要な目標を追加できます。

リモート リポジトリへの実際のデプロイは、 release:perform ゴールによって行われます。

ローラン

于 2011-03-29T12:45:49.120 に答える