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:
@@ -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
|
||||
|
||||
@@ -17,7 +17,7 @@ dependencies {
|
||||
sourceSets {
|
||||
"main" {
|
||||
projectDefault()
|
||||
resources.srcDir(File(rootDir, "resources")).apply { include("**") }
|
||||
resources.srcDir(File(rootDir, "resources"))
|
||||
}
|
||||
"test" {}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ dependencies {
|
||||
sourceSets {
|
||||
"main" {
|
||||
projectDefault()
|
||||
resources.srcDir("res").apply { include("**") }
|
||||
resources.srcDir("res")
|
||||
}
|
||||
"test" { projectDefault() }
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ dependencies {
|
||||
sourceSets {
|
||||
"main" {
|
||||
projectDefault()
|
||||
resources.srcDir("res").apply { include("**") }
|
||||
resources.srcDir("res")
|
||||
}
|
||||
"test" { projectDefault() }
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ dependencies {
|
||||
sourceSets {
|
||||
"main" {
|
||||
projectDefault()
|
||||
resources.srcDir("res").apply { include("**") }
|
||||
resources.srcDir("res")
|
||||
}
|
||||
"test" { projectDefault() }
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ dependencies {
|
||||
sourceSets {
|
||||
"main" {
|
||||
projectDefault()
|
||||
resources.srcDir("res").apply { include("**") }
|
||||
resources.srcDir("res")
|
||||
}
|
||||
"test" { projectDefault() }
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ dependencies {
|
||||
sourceSets {
|
||||
"main" {
|
||||
projectDefault()
|
||||
resources.srcDir("res").apply { include("**") }
|
||||
resources.srcDir("res")
|
||||
}
|
||||
"test" { projectDefault() }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user