Slackbot
10/15/2022, 1:44 PMChris Lee
10/15/2022, 2:32 PMval javaExtension = the<JavaPluginExtension>()
javaExtension.sourceSets.forEach { sourceSet ->
sourceSet.compileJavaTaskName
}
Chris Lee
10/15/2022, 2:32 PMString getClassesTaskName();
String getProcessResourcesTaskName();
String getCompileJavaTaskName();
String getCompileTaskName(String var1);
String getJavadocTaskName();
String getJarTaskName();
String getJavadocJarTaskName();
String getSourcesJarTaskName();
String getTaskName(@Nullable String var1, @Nullable String var2);
Chris Lee
10/15/2022, 2:36 PMcompile
+ language
.
@Override
public String getCompileTaskName(String language) {
return getTaskName("compile", language);
}
@Override
public String getCompileJavaTaskName() {
return getCompileTaskName("java");
}
Chris Lee
10/15/2022, 2:41 PMdestinationDirectory
from all org.gradle.api.tasks.compile.AbstractCompile tasks is more precise.
/**
* The base class for all JVM-based language compilation tasks.
*/
@DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly")
public abstract class AbstractCompile extends SourceTask {
Chris Lee
10/15/2022, 2:42 PMVampire
10/15/2022, 5:44 PMdependsOn
where not a lifecycle task is on the left side is a coffee smell actually.Steve Ebersole
10/17/2022, 3:49 PMVampire
10/17/2022, 3:50 PMdoLast
action is better of course.Vampire
10/17/2022, 3:51 PMSteve Ebersole
10/17/2022, 3:52 PMSteve Ebersole
10/17/2022, 3:52 PMSteve Ebersole
10/17/2022, 3:53 PMSteve Ebersole
10/17/2022, 3:56 PMgetCompileTaskName(String language)
Steve Ebersole
10/17/2022, 3:56 PMVampire
10/17/2022, 4:01 PMVampire
10/17/2022, 4:01 PM.class
files in the outputSteve Ebersole
10/17/2022, 4:02 PMVampire
10/17/2022, 4:02 PMSteve Ebersole
10/17/2022, 4:02 PMSteve Ebersole
10/17/2022, 4:03 PMVampire
10/17/2022, 4:03 PMVampire
10/17/2022, 4:03 PMVampire
10/17/2022, 4:04 PMSteve Ebersole
10/17/2022, 4:05 PMChris Lee
10/17/2022, 4:15 PMAbstractCompile
task, hooking output to input?Vampire
10/17/2022, 4:16 PMdoLast
action is imho optimal in that case so that caching, up-to-dateness and so on are properly affected too.
If it does not have to be in-place the question is where it is needed.
If you need it everywhere the classes are used it might be indeed the best solution.
If you for example only need it in the test task, then you could add on out-of-place enhancement task and use that result for the test task for example.Steve Ebersole
10/17/2022, 4:17 PMSteve Ebersole
10/17/2022, 4:18 PMSteve Ebersole
10/17/2022, 4:18 PMVampire
10/17/2022, 4:19 PMdoLast
is most probably indeed the way to go.Chris Lee
10/17/2022, 4:19 PMSteve Ebersole
10/17/2022, 4:19 PMSteve Ebersole
10/17/2022, 4:20 PMChris Lee
10/17/2022, 4:21 PMAbstractComile
instances with the filtering.Steve Ebersole
10/17/2022, 4:21 PMVampire
10/17/2022, 4:21 PMSteve Ebersole
10/17/2022, 4:21 PMChris Lee
10/17/2022, 4:21 PMtasks.withType<AbstractCompile>().configureEach
Steve Ebersole
10/17/2022, 4:22 PMChris Lee
10/17/2022, 4:22 PMVampire
10/17/2022, 4:22 PMSteve Ebersole
10/17/2022, 4:22 PMChris Lee
10/17/2022, 4:22 PMVampire
10/17/2022, 4:23 PMVampire
10/17/2022, 4:23 PMSteve Ebersole
10/17/2022, 4:24 PMSteve Ebersole
10/17/2022, 4:25 PMSteve Ebersole
10/17/2022, 4:25 PMSteve Ebersole
10/17/2022, 4:26 PM