デプロイプラグインには、必要なすべての機能があります。
構成でG / A / V座標を設定し、任意の数の追加のアーティファクトを任意の座標にデプロイできます。ただし、リポジトリに自動的にデプロイされることはありません-distributionManagement
セクションで指定されたURL。
重複を避けるために、私は最終的にGMavenプラグインに頼り、それを使用してプロジェクトのバージョンをチェックし(で終わるか-SNAPSHOT
)、の対応するセクションから直接取得したURLで新しいプロパティを設定しましたdistributionManagement
。
両方のプラグインの構成は次のとおりです。
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<id>choose-target-repository</id>
<phase>initialize</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
if (project.version.endsWith("-SNAPSHOT")){
project.properties.targetrepository = project.distributionManagement.snapshotRepository.url;
}
else {
project.properties.targetrepository = project.distributionManagement.repository.url;
}
</source>
</configuration>
</execution>
</executions>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>deploy-myclassifier</id>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<file>
${project.build.directory}/${project.artifactId}-${project.version}-myclassifier.zip
</file>
<groupId>${project.groupId}</groupId>
<artifactId>myprojectname</artifactId>
<version>${project.version}</version>
<classifier>myclassifier</classifier>
<repositoryId>nexus</repositoryId>
<url>http://url-to-nexus</url>
</configuration>
</execution>
</executions>
</plugin>