私は、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を伝える方法があります:
compile
プロジェクト全体は、次にtomcat6:run
foo-web
サブモジュール?
あなたのルートディレクトリから、 'MVNは&& CD fooのウェブをクリーンインストール&& MVN tomcat6:コマンドラインでrun'は、あなたが探しているものでしょうか?モジュールが関連していない場合、私は実行が分離されていると主張するでしょう。そうでなければ、これらがお互いにどのように関連しているかについて、ツリーを描きたいかもしれません。 – nullpointer
あなたはcdをスキップすることができます。mvn clean install && mvn -pl foo-web tomcat6:run –
@nullpointer - 私は複数のシェルコマンドのファンではありません。なぜならIDEは自動的に処理しないからです正しいバージョンのJavaとMavenを実行してください。 (これは、プロジェクトに応じてランダムな時点でアップグレードを停止したレガシーコードの泥棒に必要です)また、それらは関連しています。 'foo-web'は' foo-backend'に依存するため、これが問題の原因です最初は(私はそれを編集します) – millimoose