「インストール」の目標は、成果物をターゲットディレクトリとローカルリポジトリにコピーします。
Mavenにそれをコピーするように指示するにはどうすればよいですかまた、指定されたディレクトリに(JBossのデプロイディレクトリなど)。
http://maven.Apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html によると、ビルドしたアーティファクトを特定のディレクトリにコピーできます。
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-installed</id>
<phase>install</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<type>${project.packaging}</type>
</artifactItem>
</artifactItems>
<outputDirectory>some-other-place</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
ファイルをWebサーバー(ローカルまたは遠隔)にコピーする場合は、Mavenアップロードプラグインを使用できます。
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-upload-plugin</artifactId>
<version>1.1</version>
<configuration>
<resourceSrc>
${project.build.directory}/${project.build.finalName}.${project.packaging}
</resourceSrc>
<resourceDest>${jboss.deployDir}</resourceDest>
<serverId>${jboss.Host}</serverId>
<url>${jboss.deployUrl}</url>
</configuration>
</plugin>
そして、スマートな方法でパラメーターを構成するために、私はmavenプロファイルを使用します:
<profiles>
<!-- local deployment -->
<profile>
<id>developpement</id>
<properties>
<jboss.Host>localhost</jboss.Host>
<jboss.deployDir>appli/jboss-4.0.4.GA/server/default/deploy/</jboss.deployDir>
<jboss.deployUrl>file://C:/</jboss.deployUrl>
</properties>
</profile>
<!-- distant deployment -->
<profile>
<id>validation</id>
<properties>
<jboss.Host>ENV_val</jboss.Host>
<jboss.deployDir>/home/envval/jboss/server/default/deploy/</jboss.deployDir>
<jboss.deployUrl>scp://PROJECT_LAN_Host</jboss.deployUrl>
</properties>
</profile>
</profiles>
「antランチャー」を作成し、Eclipse antビューの下をクリックして使用します。
<target name="copy war to JBoss local" description="Copy war to local JBoss">
<maven goal="upload:upload" options="-Pdeveloppement" />
</target>
ただし、コマンドラインで簡単に実行できます。
mvn upload:upload -Pdeveloppement
ちなみに、遠く離れた展開では、scpを機能させるためにログインパスワードが必要になる場合があります。それらをMaven settings.xmlファイルに追加する必要があります。
<settings>
...
<servers>
<server>
<id>ENV_val</id>
<username>login</username>
<password>password</password>
</server>
</servers>
...
</settings>
cargo または jboss-maven plugin (そのプラグインの@Andreas_Dへのクレジット)など、実際にアプリケーションをデプロイするプラグインを使用するのが最善のアプローチです。
デプロイは実際に実行しようとしていることなので、これはコピーツールまたは汎用アップロードツールを使用するより良いアプローチです。
貨物プラグインを使用すると、 実行中のさまざまなサーバーにデプロイする のオプションがあります。このアプローチで、ビルド中に jetty plugin を使用してローカルでjettyをテストし、貨物を介してオンデマンドでTomcatにデプロイするプロファイルを用意しました。
注:ターゲットサーバー(JBOSS)が開発ボックスにローカルにインストールされている場合、貨物を使用してサーバーを起動/停止することもできますビルドプロセスも同様です。このアプローチの欠点は、pomファイル内の場所を参照するために必要になるため、すべての開発者が同じ場所にインストールするか、場所を定義するシステムプロパティ(Java_HOMEと同様)をインストールすることです。