2017-11-02 4 views
0

私は、Webアプリケーションプロジェクト構造の弾力を持っているかのように取る:foo-backendに依存foo-webプロジェクト全体を構築するにはどうすればよいですか?1つのモジュールでプラグインの目標を実行しますか?

foo 
│ pom.xml 
│ 
├───foo-backend 
│  pom.xml 
│ 
└───foo-web 
     pom.xml 

モジュール。

POMはモジュールとして、ネストされたプロジェクトを含む親:

... 
<modules> 
    <module>foo-backend</module> 
    <module>foo-web</module> 
</modules> 
... 

をそしてfoo-webモジュールが正しく、別のアプリケーション・サーバーのインストールを論争せずに、このアプリケーションを実行するために、Tomcatのプラグインを有効にします:

... 
<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat6-maven-plugin</artifactId> 
    <configuration> 
     ... 
    </configuration> 
</plugin> 
... 

私が持っている問題は、foo-webのこのプラグインを実行すると、モジュールfoo-backendが再構築されず、古いビルド出力が代わりに使用されるということです。

実行コンフィギュレーションの一部としてプロジェクトをビルドするためにIDEAをセットアップしましたが、可能な限りIDE特有のものではなく、できるだけ1つの認知的なステップとして多くのものを保持したいと思います。

にワンライナーまたは構成でMavenを伝える方法があります:

  1. compileプロジェクト全体は、次に
  2. tomcat6:runfoo-webサブモジュール?
+0

あなたのルートディレクトリから、 'MVNは&& CD fooのウェブをクリーンインストール&& MVN tomcat6:コマンドラインでrun'は、あなたが探しているものでしょうか?モジュールが関連していない場合、私は実行が分離されていると主張するでしょう。そうでなければ、これらがお互いにどのように関連しているかについて、ツリーを描きたいかもしれません。 – nullpointer

+1

あなたはcdをスキップすることができます。mvn clean install && mvn -pl foo-web tomcat6:run –

+0

@nullpointer - 私は複数のシェルコマンドのファンではありません。なぜならIDEは自動的に処理しないからです正しいバージョンのJavaとMav​​enを実行してください。 (これは、プロジェクトに応じてランダムな時点でアップグレードを停止したレガシーコードの泥棒に必要です)また、それらは関連しています。 'foo-web'は' foo-backend'に依存するため、これが問題の原因です最初は(私はそれを編集します) – millimoose

答えて

1

maven phasesのいずれかに接続されたtomcat maven pluginの実行を作成できます。すべてがコンパイルされた後に実行したいので、フェーズprocess-classesが適切であるようです。

また、私はMavenのフェーズを実行しようとしたときには常に実行Tomcatにしたくないと仮定し、それは条件付きでこの実行を作る方が良いでしょう。コンパイルとTomcat実行するに

<profiles> 
    <profile> 
    <activation> 
     <property> 
     <name>runTomcat</name> 
     </property> 
    </activation> 
    <id>run-tomcat-on-compile</id> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat6-maven-plugin</artifactId> 
      <executions> 
      <execution> 
       <id>one</id> 
       <phase>process-classes</phase> 
       <goals> 
       <goal>run</goal> 
       </goals> 
       <configuration> 
       </configuration> 
      </execution> 
      </executions> 
     </plugin> 
     </plugins> 
    </build> 
    </profile> 
</profiles> 

mvn process-classes -PrunTomcat 
関連する問題