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.tasks.*
import org.gradle.kotlin.dsl.*
import org.gradle.language.jvm.tasks.ProcessResources
//import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
inline fun Project.sourceSets(crossinline body: SourceSetsBuilder.() -> Unit) =
@@ -25,18 +27,20 @@ fun SourceSet.none() {
resources.setSrcDirs(emptyList<String>())
}
fun SourceSet.projectDefault() {
when (name) {
"main" -> {
java.srcDirs("src")
resources.srcDir("resources").apply { include("**") }
resources.srcDir("src").apply { include("META-INF/**", "**/*.properties") }
}
"test" -> {
java.srcDirs("test", "tests")
val SourceSet.projectDefault: Project.() -> Unit
get() = {
when (this@projectDefault.name) {
"main" -> {
java.srcDirs("src")
val processResources = tasks.getByName(processResourcesTaskName) as ProcessResources
processResources.from("resources") { include("**") }
processResources.from("src") { include("META-INF/**", "**/*.properties") }
}
"test" -> {
java.srcDirs("test", "tests")
}
}
}
}
// TODO: adding KotlinSourceSet dep to the plugin breaks the build unexpectedly, resolve and uncomment
//val SourceSet.kotlin: SourceDirectorySet
+1 -1
View File
@@ -17,7 +17,7 @@ dependencies {
sourceSets {
"main" {
projectDefault()
resources.srcDir(File(rootDir, "resources")).apply { include("**") }
resources.srcDir(File(rootDir, "resources"))
}
"test" {}
}
+1 -1
View File
@@ -54,7 +54,7 @@ dependencies {
sourceSets {
"main" {
projectDefault()
resources.srcDir("res").apply { include("**") }
resources.srcDir("res")
}
"test" { projectDefault() }
}
+1 -1
View File
@@ -53,7 +53,7 @@ dependencies {
sourceSets {
"main" {
projectDefault()
resources.srcDir("res").apply { include("**") }
resources.srcDir("res")
}
"test" { projectDefault() }
}
+1 -1
View File
@@ -54,7 +54,7 @@ dependencies {
sourceSets {
"main" {
projectDefault()
resources.srcDir("res").apply { include("**") }
resources.srcDir("res")
}
"test" { projectDefault() }
}
+1 -1
View File
@@ -54,7 +54,7 @@ dependencies {
sourceSets {
"main" {
projectDefault()
resources.srcDir("res").apply { include("**") }
resources.srcDir("res")
}
"test" { projectDefault() }
}
+1 -1
View File
@@ -54,7 +54,7 @@ dependencies {
sourceSets {
"main" {
projectDefault()
resources.srcDir("res").apply { include("**") }
resources.srcDir("res")
}
"test" { projectDefault() }
}