0

マルチモジュール プロジェクトで 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プラグインで解決できると思いますが、誰かがすでに解決しているに違いありませんか?

ありがとう。

4

1 に答える 1