Maven 1.1 を使用して Tomcat サーバーに war をデプロイする
-
12-09-2019 - |
質問
ビルドの実行後に Tomcat サーバーにデプロイするように Maven ゴールを構成する方法を知っている人はいますか?これが maven-tomcat-plugin を使用して可能であることはわかっていますが、私が Maven 1.1 を使用しているのに対し、これは Maven 2 でのみ機能するようです。
現在、Hudson をセットアップしようとしています。これが継続的な統合フェーズの一部となるため、次のように実行されることを願っています。
- 必要なコンポーネントをすべて構築する
- war を構築して (ローカル) サーバーにデプロイする
- Selenium テストを実行する
これに関してご協力いただければ幸いです。
ありがとう。
解決 3
私は最善の方法は、これを実行することを考え出しました。次のような目標を書くことができます:
<goal name="deployWar" prereqs="buildWar">
<echo message="+---------------------------------------------------+" />
<echo message="installing war file to server" />
<echo message="+---------------------------------------------------+" />
<j:set var="deploy.dir" value="${server}/webapps" />
<copy file="${maven.build.dir}/${pom.artifactId}.war"
todir="${deploy.dir}" overwrite="true" />
</goal>
サーバー変数は、あなたのproject.propertiesファイルで決定することができます。また、あなたがそれを展開しようとする前に、前提条件がWARを構築することを指定してください。これは誰かに役立ちます願っています!
他のヒント
正直に言うと、Maven 2 を使用するようにプロジェクトをリファクタリングしたいと思います。移行の痛みを軽減するのに役立つガイドがいくつかあります (Google Maven 2 の移行)、さらには maven-one-プラグイン project.xml を変換するか、Maven 1 プラグインを Maven 2 用にパッケージ化します。
それができない場合は、 Maven 1 アリ プラグイン war をパッケージ化した後、Tomcat の webapps ディレクトリにコピーします。Tomcat は新しい戦争を検出し、ホットデプロイする必要があります。
私は認めざるを得ない、私はMavenのためのプラグインについてはよく知らないが、私は(Mavenプラグインは、作業ディレクトリをクリーンかどうかを知りません)だけでなく、作業ディレクトリをきれいに簡単なスクリプトで全力を尽くします。
CALL mvn clean install
CALL rm C:\apps\tomcat\webapps\Foo.war
CALL rm -rdf C:\apps\tomcat\webapps\foo
CALL rm -rdf C:\apps\tomcat\work\Catalina
CALL copy C:\webapps\workspace\Foo\target\Foo.war C:\apps\tomcat\webapps\Foo.war /y
(私が知っている、-1 MSスクリプティング用)
のポイントは、あなたは一般的に、作業ディレクトリをきれいにしたいされ、webappsディレクトリとMaven 1アリプラグインは(私の知る限りかどうかを知り、そして提供されたリンクから読んで)これを行いません。 Tomcatのは、それがwarファイルを爆発時にこれらのディレクトリ内のクラスファイルを再作成する「はず」、それで十分な長さを働いている誰もが知っている:これは必ずしもそうではありません。
プラグインは、これらのディレクトリをきれいにしていない場合ので、それは私に関する限り役に立たないのです。自分で用意したような安価な小さなスクリプトを書きます。それは2分かかります。
webappDirectoryは、Mavenの戦争 - プラグイン爆発戦争を展開するために設定することができます。特別な何もちょうどMavenのインストールを実行し、必要ありません。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webappDirectory>path/to/server/deploy/dir</webappDirectory>
</configuration>
</plugin>