1

Maven で生成された .war ファイルをテストまたは実稼働の tomcat サーバーにデプロイするために、POM で次のプラグインを定義しました。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.7</version>
  <configuration>
    <target name="test-deploy">
      <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>
        <deploy 
          path="/${project.name}" 
          url="http://test-server:8080/manager/text" 
          username="user" 
          password="pass"
          war="file:${project.build.directory}/${project.build.finalName}.${project.packaging}" 
          update="true"/>
    </target>
    <target name="prod-deploy">
      <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>
        <deploy 
          path="/${project.name}" 
          url="http://prod-server:8080/manager/text" 
          username="user" 
          password="pass"
          war="file:${project.build.directory}/${project.build.finalName}.${project.packaging}" 
          update="true"/>
    </target>
  </configuration>
  <dependencies>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-catalina-ant</artifactId>
      <version>8.0.14</version>
    </dependency>
  </dependencies>
</plugin>

Maven AntRun プラグインの使用法を読むと、ターゲット名を追加できるはずですが (私が行ったように)、特定のターゲットを呼び出す方法がわかりません。次のweb-deployようにターゲットのみを呼び出そうとしても、ターゲットは実行される唯一のtest-deployターゲットです。

mvn antrun:run -Dtarget=test-deploy

実行したい Ant ターゲットを指定するにはどうすればよいですか?

4

2 に答える 2

1

私の知る限り、これは不可能です。

Maven プロファイルを使用して Maven タスクを分割し、条件またはコマンド ライン パラメータに基づいてプロファイルをトリガーする Maven の機能を使用してそれらを呼び出すことをお勧めします。
これは、各プロファイルが独自のmaven-antrun-pluginを宣言することを意味しますが、それらを個別に呼び出す柔軟性を提供します。

これが役立つことを願っています。

于 2014-11-05T18:39:48.897 に答える
0

Eldad AK の回答に基づいて、maven プロファイルを使用してそのプロファイルの ant ターゲット実行をカスタマイズする簡単な実用的なソリューションを次に示します。

        ...
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.7</version>
          <configuration>
            <target>
              <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>
                <echo message="Deploying to ${tomcat.deploy.url}"/>
                <deploy 
                  path="/${project.name}" 
                  url="${tomcat.deploy.url}" 
                  username="${tomcat.deploy.username}" 
                  password="${tomcat.deploy.password}"
                  war="file:${project.build.directory}/${project.build.finalName}.${project.packaging}" 
                  update="true"/>
            </target>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.apache.tomcat</groupId>
              <artifactId>tomcat-catalina-ant</artifactId>
              <version>8.0.14</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </build>

    <profiles>
      <profile>
        <id>test</id>
        <properties>
          <tomcat.deploy.url>http://test-server:8080/manager/text</tomcat.deploy.url>
          <tomcat.deploy.username>user</tomcat.deploy.username>
          <tomcat.deploy.password>pass</tomcat.deploy.password>
        </properties>
      </profile>
      <profile>
        <id>prod</id>
        <properties>
          <tomcat.deploy.url>http://prod-server:8080/manager/text</tomcat.deploy.url>
          <tomcat.deploy.username>user</tomcat.deploy.username>
          <tomcat.deploy.password>pass</tomcat.deploy.password>
        </properties>
      </profile>
    </profiles>

テストまたは本番環境にデプロイするには、適切なプロファイルを選択するだけです:

> mvn -Pprod antrun:run

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ExampleApplication 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (default-cli) @ ExampleApplication ---
[INFO] Executing tasks

main:
     [echo] Deploying to http://prod-server:8080/manager/text
   [deploy] OK - Deployed application at context path /ExampleApplication
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
于 2014-11-06T15:28:40.237 に答える