Fix the SourceSet.projectDefault() extension adding sources to resources

The `include` calls were effectively made on the `resources`
`SourceDirectorySet`, which meant including '**' from 'src' as well.

Since the 'SourceDirectorySet' API is quite limited and does not support
specifying includes/excludes separately, configure the
`ProcessResources` task instead.
This commit is contained in:
Sergey Igushkin
2018-08-20 20:03:26 +03:00
parent 674e464230
commit a71c66a82f
7 changed files with 20 additions and 16 deletions
+14 -10
View File
@@ -4,6 +4,8 @@ import org.gradle.api.*
import org.gradle.api.plugins.JavaPluginConvention import org.gradle.api.plugins.JavaPluginConvention
import org.gradle.api.tasks.* import org.gradle.api.tasks.*
import org.gradle.kotlin.dsl.* import org.gradle.kotlin.dsl.*
import org.gradle.language.jvm.tasks.ProcessResources
//import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet //import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
inline fun Project.sourceSets(crossinline body: SourceSetsBuilder.() -> Unit) = inline fun Project.sourceSets(crossinline body: SourceSetsBuilder.() -> Unit) =
@@ -25,18 +27,20 @@ fun SourceSet.none() {
resources.setSrcDirs(emptyList<String>()) resources.setSrcDirs(emptyList<String>())
} }
fun SourceSet.projectDefault() { val SourceSet.projectDefault: Project.() -> Unit
when (name) { get() = {
"main" -> { when (this@projectDefault.name) {
java.srcDirs("src") "main" -> {
resources.srcDir("resources").apply { include("**") } java.srcDirs("src")
resources.srcDir("src").apply { include("META-INF/**", "**/*.properties") } val processResources = tasks.getByName(processResourcesTaskName) as ProcessResources
} processResources.from("resources") { include("**") }
"test" -> { processResources.from("src") { include("META-INF/**", "**/*.properties") }
java.srcDirs("test", "tests") }
"test" -> {
java.srcDirs("test", "tests")
}
} }
} }
}
// TODO: adding KotlinSourceSet dep to the plugin breaks the build unexpectedly, resolve and uncomment // TODO: adding KotlinSourceSet dep to the plugin breaks the build unexpectedly, resolve and uncomment
//val SourceSet.kotlin: SourceDirectorySet //val SourceSet.kotlin: SourceDirectorySet
+1 -1
View File
@@ -17,7 +17,7 @@ dependencies {
sourceSets { sourceSets {
"main" { "main" {
projectDefault() projectDefault()
resources.srcDir(File(rootDir, "resources")).apply { include("**") } resources.srcDir(File(rootDir, "resources"))
} }
"test" {} "test" {}
} }
+1 -1
View File
@@ -54,7 +54,7 @@ dependencies {
sourceSets { sourceSets {
"main" { "main" {
projectDefault() projectDefault()
resources.srcDir("res").apply { include("**") } resources.srcDir("res")
} }
"test" { projectDefault() } "test" { projectDefault() }
} }
+1 -1
View File
@@ -53,7 +53,7 @@ dependencies {
sourceSets { sourceSets {
"main" { "main" {
projectDefault() projectDefault()
resources.srcDir("res").apply { include("**") } resources.srcDir("res")
} }
"test" { projectDefault() } "test" { projectDefault() }
} }
+1 -1
View File
@@ -54,7 +54,7 @@ dependencies {
sourceSets { sourceSets {
"main" { "main" {
projectDefault() projectDefault()
resources.srcDir("res").apply { include("**") } resources.srcDir("res")
} }
"test" { projectDefault() } "test" { projectDefault() }
} }
+1 -1
View File
@@ -54,7 +54,7 @@ dependencies {
sourceSets { sourceSets {
"main" { "main" {
projectDefault() projectDefault()
resources.srcDir("res").apply { include("**") } resources.srcDir("res")
} }
"test" { projectDefault() } "test" { projectDefault() }
} }
+1 -1
View File
@@ -54,7 +54,7 @@ dependencies {
sourceSets { sourceSets {
"main" { "main" {
projectDefault() projectDefault()
resources.srcDir("res").apply { include("**") } resources.srcDir("res")
} }
"test" { projectDefault() } "test" { projectDefault() }
} }