3

Gradle では、「settings.gradle」ファイルでビルドするサブプロジェクトを定義する必要があります。3 つの子プロジェクトをビルドするには、次のようにします。

include "child1", "child2", "child3"

私が抱えている問題は、含めるプロジェクトがかなりあることです。この定義でワイルドカードを使用する方法はありますか? 私はこのようなものを探しています:

include "*"

それはもちろんうまくいきません。多くのサブプロジェクトを含める必要があるため、これは作業がはるかに簡単になります。サブディレクトリをプロジェクトとして自動的に含める方法はありますか?

4

3 に答える 3

4

include rootDir.listFiles().findAll { 
     it.isDirectory() 
     && !( it =~ ".*/\\..*") // don't add directories starting with '.'
     && !( it =~ "^\\..*") // don't add directories starting with '.'
    }.collect { 
        it.getName() 
    }.toArray(new java.lang.String[0])

私のためにトリックをしました

于 2012-10-09T15:50:55.710 に答える
2

次のコードは、任意の深さのプロジェクト階層をサポートしています。

rootDir.eachFileRecurse { f ->
    if ( f.name == "build.gradle" ) {
        String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
        String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
        include projectName
    }
}
于 2016-02-08T12:54:35.933 に答える
1

次のようなことができますか:

include (1..10).collect { "Child$it" }

「Child1」から「Child10」までを含めるには?

明らかに、収集を何らかのフォルダー スキャンに変更する必要がありますが、そのクイック テストが機能する場合は、スキャンの可能性が高くなります。

于 2010-02-19T16:07:01.313 に答える