Gradle はフルビルドから特定のサブプロジェクトを除外します 質問する

Gradle はフルビルドから特定のサブプロジェクトを除外します 質問する


私たちの Gradle プロジェクトでは、他のサブプロジェクトからの依存関係にアクセスできる必要があるが、完全なプロジェクト ビルドの一部として実行されない機能テスト用の新しいモジュールを追加したいと考えています。これを試すと、ビルドは実行されます。

def javaProjects() {
   return subprojects.findAll { it.name != 'functional-tests' }
}

configure(javaProjects()) {
   ...
}

project(':functional-tests') {
    ....
}

functional-tests ビルドを独自の別の build.gradle ファイルに移動しても、結果は同じです。これを実現する方法を誰か教えてもらえますか?

ベストアンサー1

コマンドラインまたはビルド ファイル経由で機能テストを実行しないようにする方がよい解決策であることがわかりました。

たとえば、機能テストを除くすべてのテストを実行するには、次のコマンドを実行します。

$ gradle check -x :functional-tests:check

次に、プロジェクトをビルドするときに、サブプロジェクトをビルドしながら、そのテストを実行から除外することができます。

$ gradle clean assemble -x :functional-tests:check

より良い選択肢は、プロパティが設定されていない限り、ビルド ファイル内の機能テストを無効にすることです。たとえば、次のようにbuild.gradle追加します。

project('functional-tests') {
    test {
        onlyIf {
            project.hasProperty("functionalTests")
        }
    }
}

この方法では、特定のビルド プロパティを指定しない限り、機能テストは常にスキップされます。

$ gradle check
$ gradle -PfunctionalTests check

お役に立てれば幸いです!

おすすめ記事