3

2 つのモジュールを含む gradle プロジェクトがあります。

最初のモジュール (A) は、2 番目のモジュール (B) が使用するアーカイブを生成します。settings.gradleA が B の前に表示されるようにファイルを定義しました。

A の最後にinstall、アーカイブを B で使用できるようにするタスクが呼び出されますが、このタスクはすべてのモジュールがビルドinstallされるまで実行されません。

A のビルド ファイルを使用するか、ビルド コマンドを設定する-pと、プロジェクト B の依存関係を見つけようとします。これはしたくありません。

モジュール B がモジュール A の終了を完全に待機するように設定するにはどうすればよいですか?

4

1 に答える 1

2

A が B の前に表示されるように settings.gradle ファイルを定義しました。

ここでは順序は関係ありません。

A の最後に、アーカイブを B で使用できるようにするインストール タスクが呼び出されます。

これを処理する正しい方法は、プロジェクトの依存関係を介して A の出力を B で利用できるようにすることです。最も単純なケースでは、Bbuild.gradleには以下が含まれます。

dependencies {
    compile project(":A") // could be something other than 'compile'
}

A のビルド ファイルを使用するか、ビルド コマンド -p を設定すると、プロジェクト B の依存関係を見つけようとします。

ほとんどの場合、ビルド スクリプトの 1 つに問題があります。つまり、実行フェーズで行う必要がある構成フェーズで動作するという問題です。

モジュール B がモジュール A の終了を完全に待機するように設定するにはどうすればよいですか?

良い方法はありません。Gradle は、プロジェクトのリストではなく、タスクのグラフを実行します。タスクの依存関係が正しい限り、前者には利点だけがあり、欠点はありません。多くの場合、Gradle はタスクの依存関係を (特にプロジェクト間で) 自動的に把握できます。

于 2013-07-26T20:33:11.210 に答える