Slackbot
09/05/2023, 5:23 PMClayton Walker
09/05/2023, 5:24 PMClayton Walker
09/05/2023, 5:25 PM/java/main -XDuseUnsharedTable=true -classpath /Users/cwalker/git/simple-shadow-repack/sub-lib-1/build/classes/java/main /Users/cwalker/git/simple-shadow-repack/sub-lib-2/src/main/java/org/springframework/example2/Om1.javaClayton Walker
09/05/2023, 5:25 PMVampire
09/05/2023, 6:03 PMclassesDirs instead?Clayton Walker
09/05/2023, 6:48 PMClayton Walker
09/05/2023, 7:07 PM(output.classesDirs as? ConfigurableFileCollection)?.from(
objenesisRepackClasses
)Vampire
09/05/2023, 10:43 PMdir?Vampire
09/05/2023, 10:44 PMval genClass by tasks.registering(JavaCompile::class) {
source(file("foo/src/main/java"))
destinationDirectory = layout.buildDirectory.dir("genClass")
classpath = files()
}
val genRes by tasks.registering {
val out = layout.buildDirectory.dir("genRes")
outputs.dir(out)
doLast {
out.get().file("foo").asFile.writeText("FOO")
}
}
sourceSets.main {
output.dir(genClass.flatMap { it.destinationDirectory })
output.dir(genRes)
}
and it seems to work just fine.
If I execute the jar task, both tasks run and the result is packaged, if I execute the run task, both output dirs are added to the class path.Vampire
09/05/2023, 10:49 PMsourceSets.main {
resources.srcDir(genClass.flatMap { it.destinationDirectory })
resources.srcDir(genRes)
}
works the same here, just that it is copied along to the resources output directory through the processResources task, and using output.dir seems a bit cleaner and more economic, as you do not need to copy files around where unnecessary.Clayton Walker
09/06/2023, 1:17 AMClayton Walker
09/06/2023, 1:20 AMVampire
09/06/2023, 9:44 AM