1

ビルドの実行後にTomcatサーバーにデプロイするMavenゴールを構成する方法を知っている人はいますか?これはmaven-tomcat-pluginを使用して可能であることを知っていますが、Maven 1.1を使用しているのに対し、これはMaven2でのみ機能するように見えます。

私は現在ハドソンをセットアップしようとしているので、これは私の継続的な統合フェーズの一部であり、次のように実行されることを望んでいます。

  1. 必要なすべてのコンポーネントを構築する
  2. 戦争を構築し、(ローカル)サーバーにデプロイします
  3. セレンテストを実行する

これに関する助けをいただければ幸いです。

ありがとう。

4

4 に答える 4

0

正直なところ、Maven 2を使用するようにプロジェクトをリファクタリングします。移行の苦痛を和らげるのに役立つガイドがいくつかあり(google maven 2の移行)、project.xmlを変換したりMaven1プラグインをパッケージ化するためのmaven-one-pluginもあります。 Maven2の場合。

それができない場合は、Maven 1 antプラグインを使用して、パッケージ化後にTomcatのwebappsディレクトリにwarをコピーできます。Tomcatは新しい戦争を検出し、それをホットデプロイする必要があります。

于 2009-09-22T12:58:32.120 に答える
0

認めざるを得ません。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

(私は知っています、MSスクリプティングの場合は-1)

重要なのは、通常、workディレクトリとwebappsディレクトリをクリーンアップしたいのですが、Maven 1 antプラグインはこれを実行しません(私が知る限り、提供されたリンクから読み取ります)。Tomcatは、warファイルを爆発させたときに、これらのディレクトリにクラスファイルを再作成するように「想定」されていますが、Tomcatを十分に長く使用したことがある人なら誰でも知っています。これは、常に当てはまるとは限りません。

したがって、プラグインがこれらのディレクトリをクリーンアップしない場合、私に関する限り、それは役に立ちません。提供されているような安価な小さなスクリプトを自分で作成します。2分かかります。

于 2009-09-22T13:08:19.947 に答える
0

私はこれを行うための最良の方法を見つけました-戦争を移すためのMavenの目標を書くのは実際にはかなり簡単です。目標は次のように書くことができます。

<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をデプロイする前に、WARをビルドするための前提条件を必ず指定してください。これが誰かに役立つことを願っています!

于 2009-09-24T10:57:10.523 に答える
0

webappDirectoryは、爆発的な戦争をデプロイするためにmaven-war-plugin用に構成できます。特別なことは何も必要ありません。maveninstallを実行するだけです。

<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>
于 2011-10-06T18:16:43.623 に答える