私はMavenを初めて使用し、プロジェクトをリリースする方法を理解しようとしています。私はsvnで次のプロジェクトをセットアップしています:
trunk
|-deployer
| |-pom.xml
|-webapp
| |-pom.xml
|-utils
|-pom.xml
webappを開発している間、私は常にutilsの最新のスナップショットバージョンに対して開発したいので、webapp/pom.xmlでutilsへの依存関係を次のように宣言します。
com.companyutils1.0-スナップショット
Webapp自体も現在バージョン1.0-SNAPSHOTでバージョン管理されています。pom.xmlには次の宣言があります。
<artifactId>webapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>Sample Webapp</name>
ですから、すべてがうまく機能していますが、今はソフトウェアをリリースしたいと思っています。デプロイヤーでは、pom.xmlに次のものがあります。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company</groupId>
<artifactId>deployer</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>Project Release</name>
<modules>
<module>externals/webapp</module>
</modules>
<properties>
<url.svn>http://<my-server>/<project>/trunk</url.svn>
</properties>
<scm>
<connection>scm:svn:${url.svn}</connection>
</scm>
<build>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.3</version>
<configuration>
<tagBase>
http://<my-server>/<project>/tags
</tagBase>
</configuration>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>Releases</id>
<name>Releases</name>
<url>http://<nexus-server>/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>Snapshots</id>
<name>Snapshots</name>
<url>http://<nexus-server>/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>
デプロイヤーフォルダー自体の中に、「externals」というフォルダーがあり、Webアプリケーションプロジェクトをチェックアウトするようにsvn-externalsが設定されています(mavenがプロジェクトを見つけることができないと文句を言ったため、これを追加しました)。したがって、モジュールパスは正しいはずです。
質問
1.)Webアプリのバージョンをリリースしたいのですが、デプロイヤープロジェクトでとを実行するmvn release:prepare
とmvn release:perform
、svnでタグ付けされたトランクとnexusリポジトリにアップロードされたpomだけが具体的な出力になります。これは、デプロイヤアーティファクトのパッケージ化が「pom」タイプであるという意味で理にかなっていますが、Webアプリケーションの戦争を起こさせるという仕事も完了していません(Webアプリケーションプロジェクトでリリースを単独で行う場合は、ここで注意する必要があります)しかし、私は戦争をするでしょう)。複数のモジュールをリリースする必要があるため、デプロイヤープロジェクトのMavenアグリゲーションを使用してこれを実現できると思いましたが、機能していないようです。
2.)私がやろうとしていることを達成するためのより良い方法はありますか?
あなたが提供できる洞察に感謝します。