2017-10-24 11 views
1

私のチームは、変更されたがローカルリポジトリに再インストールされなかった他のMavenプロジェクトに依存するMavenプロジェクトを実行すると、定期的に不便を感じています。簡単のため 別のMavenプロジェクトに依存する1つのMavenプロジェクトを持つIntelliJ:効率的な方法

、のは、私は2つのMavenプロジェクト ビジネスウェブを持っているとしましょう。私の Webプロジェクトは、 ビジネスプロジェクトと開発用のローカルWebサーバーを実行できるJettyプラグインの依存関係があります。

IntelliJでは、両方のプロジェクトがMaven Addプロジェクトを使用して同じウィンドウで開かれているので、2つのプロジェクト間で簡単にコードをナビゲートできます。

mvn clean install -DskipTestsウェブビジネスプロジェクトで実行し、mvn clean jetty:runするように現在、私はのIntelliJで実行構成を設定しています。これにより私はウェブを最新の変更でのビジネスで実行することができます。 ビジネスプロジェクトでclean installを実行しないと、Webは、ソースコードBusinessの古いバージョンで実行されます。さらに、デバッグ中のソースコードがランタイムクラスと一致しないため、IntelliJデバッガが混乱します。実際のアプリケーションで

は、 依存性注入ブートストラッププロジェクトは ウェブビジネスいくつかのデータベースアダプタX一部のデータベースアダプタYいくつかのAPIクライアントアダプタに依存してもよいです...したがって、 clean installは高価になることがあります。さらに、Dependdeeプロジェクトを構築することを忘れてしまうのは簡単です。そのため、Jettyを実行する前にMavenの目標が常に実行される理由があります。

開発中に効率を上げる方法はありますか。従属プロジェクトを実行するときに、Mavenの目標を何も/何も実行しなくても、dependeeプロジェクトの変更は有効になりますか?

+0

別のものに依存するプロジェクトを1つのマルチモジュールビルドにする必要があるように思えます。処理が簡単になります。 – khmarbaise

+0

@khmarbaiseすでにマルチモジュールビルドを使用していて、 IntelliJ。 Jetty Run Configuration(Jettyを実行するMavenの目標を実行するのではなく)を設定したので、問題は解決しました。 – Hay

答えて

2

BusinessおよびWebの両方をモジュールとして参照する小さな親プロジェクトpom.xmlを作成します。 Intelljに親プロジェクトを開くように指示します。これにより、アーティファクトをローカルにインストールすることなくWebアクセスビジネス(適切に参照されている場合)にアクセスできます。

+0

これはすでに該当します。私はここに何かを逃していますか私は一例として次のように再現しました:https://github.com/Hurricaaane/maven-deptest/blob/master/pom.xmlプロジェクトウェブで目標を実行できませんでしただけでなく、プロジェクトの依存関係を解決できませんでしたcom.example:web:war:1.0-SNAPSHOT:アーティファクトを見つけられませんでしたcom.example:business:jar:1.0-SNAPSHOT'アーティファクトをローカルにインストールしないと* Web *で 'jetty:run'私は*ビジネス*のクラスを作る*私はローカルでアーティファクトをインストールしない場合* Web *で 'jetty:run'の後に反映されません。 – Hay

+0

2つのプロジェクトが別々のIntelliJウィンドウにある場合、それらは互いに見えません。 –

+0

これは私が見ているものです:https://i.imgur.com/V8YJK7J.png – Hay

関連する問題