Gradleの設定ファイルでワイルドカードを使用してサブプロジェクトを含めます
質問
でGradleではあなたは「settings.gradle」ファイルに建設されるサブプロジェクトを定義する必要があります。 3つのプロジェクトをビルドするには、このような何かをするでしょう。
include "child1", "child2", "child3"
私がいる問題は、私が含まれるようにかなりの数のプロジェクトを持っているということです。この定義では、ワイルドカードを使用する方法はありますか?私はこのような何かを探しています:
include "*"
もちろん、それは動作しません。私は含めるべき多くのサブプロジェクトを持っているので、これはとの仕事に非常に簡単になります。自動的にプロジェクトなどのサブディレクトリを含める方法はありますか?
解決
あなたのような何かを行うことができます:
include (1..10).collect { "Child$it" }
"Child10" に "CHILD1" までを含める?
もちろん、フォルダスキャンのいくつかの並べ替えにコレクトを変更する必要があると思いますが、それは簡単なテストは、動作することをスキャン持って良いのチャンス
他のヒント
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])
私のためのトリックを行いました
次のコード支持体は、任意の深さの階層
rootDir.eachFileRecurse { f ->
if ( f.name == "build.gradle" ) {
String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
include projectName
}
}
所属していません StackOverflow