マルチモジュール プロジェクトで gradle を使用することに興味があります。この質問Gradle nested multi-projects with project compile dependenciesを再利用し、その依存関係についても説明します。
Root
|__ P1
| |_ PP1
| |_ PP2
|
|__ P2
|_PP3
|_PP4
元の質問のように、PP1 をコンパイルしたいのですが、オンデマンドでのみコンパイルします。それ以外の場合は、最新のビルド jar 依存関係を使用したいと考えています。
dependencies {
compile(project(":P1:PP1"))
}
理想的には、私は次のようなものが欲しい
dependencies {
compile(compileFromSourceCodeOrLoadJar(project(":P1:PP1"), 'P1:PP1'))
}
PP1 ディレクトリ内のソース ファイルが最新のビルドされた jar よりも新しい場合にコンパイルされます。厳密に必要な場合にのみコンパイルするという考え方です。決定は、ソース ファイルと jar ファイルの最終変更のタイムスタンプから行うことができます。
さらに複雑で潜在的に効率的なものにするために、バージョン管理システムの出力に基づいて決定を下す必要があります。時間 X またはリビジョン R 以降に変更があった場合は、チェックアウトしてコンパイルします。それ以外の場合は、jar 依存関係を使用します。
誰かがこの問題を解決しましたか? カスタムgradle/groovyプラグインで解決できると思いますが、誰かがすでに解決しているに違いありませんか?
ありがとう。