Mavenリリースプラグインを使用しています。問題は単純です。release:performでデプロイを実行したくありません。実際に、デプロイを実行するシェルスクリプトを実行したいと思います。だから私は達成する2つのことがあります:
どういうわけか、release:performからデフォルトの「デプロイ」目標を無効にします
どういうわけかrelease:performにexec:execプラグインを呼び出してシェルスクリプトを実行させます
これが私のpomです:
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.0</version>
<configuration>
<tagBase>svn://saoj-la.dyndns.org/webapp-test/tags</tagBase>
<connectionUrl>scm:svn:svn://saoj-la.dyndns.org/webapp-test/trunk</connectionUrl>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>/bin/sh</executable>
<arguments>
<argument>run.sh</argument>
</arguments>
</configuration>
</plugin>
Mavenリリースプラグインを使用しています。問題は単純です。release:performでデプロイを実行したくありません。実際に、デプロイを実行するシェルスクリプトを実行したいと思います。
これを読んだとき、スクリプトの要点がわからないので、何かが足りないに違いありません...しかし、私はそれを理解していないとだけ言いましょう。
どういうわけか、release:performからデフォルトの「デプロイ」目標を無効にします
release:perform
のドキュメントによると、オプションの goals
パラメーターを使用して以下を指定できます。
展開時に実行する目標のスペース区切りのリスト。プロジェクトに
deploy site-deploy
要素がある場合、デフォルト値はdeploy
または<distributionManagement>/<site>
のいずれかです。
install
の代わりにdeploy
を使用することもできます。
どういうわけかrelease:performにexec:execプラグインを呼び出してシェルスクリプトを実行させます
リリース中にアクティブ化されたプロファイルのinstall
にバインドします。これを行う1つの方法は次のとおりです。
<profile>
<!-- Profile used when the release plugin executes. -->
<id>release</id>
<activation>
<property>
<!-- This property is automatically defined by the Maven release plugin when executing
a release. Thus this profile will be automatically enabled when releasing -->
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<build>
...
</build>
</profile>
しかし、正直なところ、あなたの要求には奇妙なことがあります。たぶん、より多くの詳細を与えることは助けになるでしょう。
少し遅れていますが、参考のために:
ステップ1では、「スキップ」オプションを使用してMavenデプロイステップを無効にできます。参照のために ここ をクリックしてください。
コマンドラインでは、次のように呼び出すことができます。
mvn release:perform -Darguments="-Dmaven.deploy.skip=true"