モジュールAとBの2つがあります。実際のBはAへのプラグインです。
Bはコンパイル時にAに依存します。 Aさんのpom.xmlに、私は、次の依存関係を追加するようMavenランタイムスコープと循環依存性
<dependency>
<groupId>my_group</groupId>
<artifactId>my_Plugin</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
Mavenのプロセス
pom.xml
は、循環依存のエラーで失敗し、私はクラスパスにBを追加するランタイムでB. には依存しませ
[ERROR] The projects in the reactor contain a cyclic reference: Edge between 'Vertex{label='A'}' and 'Vertex{label='B'}' introduces to cycle in the graph B-->A-->B -> [Help 1]
[ERROR]
ランタイム依存関係の影響が時間をコンパイルなぜ?
このようなプロジェクトのためにビルドを整理するには、良いアプローチがあります。別のモジュール(C)に共有されているコードをリファクタリングすると、プロジェクトBはコンパイル時にAに依存する必要がなくなります.AとBはどちらもCに依存することができます。AをBに依存させることは問題になりません実行時にこれを考える良い方法は、ライブラリ(共有可能なコードの集まり)を書くことと、アセンブルされたライブラリのコレクションであるアプリケーションを考えることです。アプリケーションプロジェクトには、実際にコードを入れる必要はありません。 – Conan