mvn install他のサブモジュールを構築/起動するとき(特にブランチを頻繁に切り替えるとき)に、サブモジュールの正確なバージョンがどのバージョンで使用されるかわからないように感じるため、マルチモジュールプロジェクトでの使用を避ける傾向があります。私はよく
使う傾向があります。mvn packagemvn verify
私は現在、 Mavenのベストプラクティスを使用したいFOSSプロジェクト(さらにMavenの原型)でこの問題に直面しています。
これは、他のモジュールに依存するwebappサブモジュールを備えたマルチモジュールプロジェクトであり、私が心配しているのは、(または)とともに開発が容易なことです。mvn jetty:runjetty:start
現在、2つのプロファイルを定義しました。
prod、デフォルトのものは、他のサブモジュールへの依存関係を宣言します。dev一方、他のモジュールに依存せずjetty-maven-plugin、他のモジュールの出力ディレクトリをextraClasspathおよびとして追加してを構成しますresourcesAsCSV。
そうすれば、サーバーを停止することなく、Webアプリをリロードして、mvn package一度だけすばやく繰り返すことができます。cd webapp && mvn jetty:start -Pdev
AFAICTは、まさにextraClasspathその目的のために追加されました(JETTY-1206)。
Maven 3を使用しているときにreactorビルドからモジュールを解決できる点を指摘しましたtomcat7-maven-plugin(そして、同じものをJettyに持ち込むための問題を提起しました:JETTY-1517)が、それではほとんど解決できません
devプロファイル内から他のサブモジュールへの依存関係を削除していなかった場合は、後でそれらの依存関係を使用しなくmvn installても、POMの検証が失敗しないように、最初に実行する必要がありました。jetty:start
だからここに私の質問があります:mvn install本当にそれは一般的ですか?または、リアクター内の依存関係をprodプロファイルにのみ配置するという私のアプローチはOKですか?
(私はとまったく同じ問題を抱えていることに注意してgwt-maven-pluginください。Tomcatに切り替えるように言わないでください。実際には機能しません。詳細はこちらをご覧ください)