2016-05-21 14 views
0

複数のMavenモジュールに基づいてWebアプリケーションを構築しようとしています。モジュールの1つは "web"と呼ばれ、tomcat7-maven-pluginを使ってtomcatに展開すべきwarをパッケージ化することは、単独で責任があります。複数のモジュールが1つの戦争を構築するtomcat-maven-plugin

  • 共通
  • 永続
  • 持続包埋
  • サービス
  • 残り
  • ウェブ

それらのすべてです:私は私のparent.pomで定義されたモジュールを、次のしています1つのWebアプリケーション戦争に組み合わされて、Webモジュールは戦争に包装を設定しました。問題は、mvn tomcat7:redeployを実行すると、私のwarファイルが各サブモジュール(およびmain-parent-module)に対して繰り返し配備され、7つの配備につながることです。明らかに、これはどのようにすべきかではありません。

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <ignorePackaging>true</ignorePackaging> 
     <url>http://localhost:8080/manager/text</url> 
     <server>tomcatServer</server> 
     <path>/webapp</path> 
     <warFile> /home/username/dev/maven-multimodule-example/web/target/maven-multimodule-example-1.0-SNAPSHOT.war</warFile> 
     <username>admin</username> 
     <password>password</password> 
    </configuration> 
</plugin> 

あなたが見ることができるように、私は$ {プロジェクトを使用することはできませんので、私は、解決策ではなく、ハックではありませんwarFileを(指定する必要があります。tomcat7-mavenの-プラグイン設定は、現在、このようになります。 .basedir}それは動作させるためにサブモジュール - dirにつながる)。

しかし、mvn tomcat7:を実行してWebアプリケーションを実行すると、他の非ビルドモジュールがプラグインによってスキップされているため、かなりうまく見えます。

warファイルを1回だけ展開する正しい方法をプラグインに設定するにはどうすればよいですか?

+0

正確にtomcatプラグインを設定しましたか?どのPOM、POMのどのセクションですか? – dunni

+0

親親pomに – Daniel

答えて

1

親POMの<build>セクション内のすべての設定が継承され、すべての子モジュールで実行されます。したがって、1回だけ展開する場合は、1つのPOM(Web POMなど)に追加してください。

0

dunniの助けを借りて、私はマルチモジュールプロジェクトの構築方法について私が誤解していることに気付きました。今度はプラグインの設定をWebモジュールに置き、インストール段階にバインドされた実行を追加して、プロジェクト全体を再構築してtomcatにデプロイするようにしました。モジュールのright execution orderは明らかにmavenが処理します。

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <url>http://localhost:8080/manager/text</url> 
     <server>tomcatServer</server> 
     <path>/webapp</path> 
     <warFile>${project.basedir}/target/${project.parent.artifactId}-${project.parent.version}.war</warFile> 
     <username>admin</username> 
     <password>password</password> 
    </configuration> 
    <executions> 
     <execution> 
      <id>redeployafterinstall</id> 
      <phase>install</phase> 
      <goals> 
       <goal>redeploy</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
関連する問題