web-dev-qa-db-ja.com

Mavenリリース:デプロイせずに実行し、外部シェルスクリプトを呼び出す

Mavenリリースプラグインを使用しています。問題は単純です。release:performでデプロイを実行したくありません。実際に、デプロイを実行するシェルスクリプトを実行したいと思います。だから私は達成する2つのことがあります:

  1. どういうわけか、release:performからデフォルトの「デプロイ」目標を無効にします

  2. どういうわけか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>
23

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>

しかし、正直なところ、あなたの要求には奇妙なことがあります。たぶん、より多くの詳細を与えることは助けになるでしょう。

8
Pascal Thivent

少し遅れていますが、参考のために:

ステップ1では、「スキップ」オプションを使用してMavenデプロイステップを無効にできます。参照のために ここ をクリックしてください。

コマンドラインでは、次のように呼び出すことができます。

mvn release:perform -Darguments="-Dmaven.deploy.skip=true"
44
Marja