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