Skip to content

Commit 09d0442

Browse files
adminpbe-axelor
admin
authored andcommitted
Fix gradle up-to-date check issue
1 parent 5094849 commit 09d0442

File tree

2 files changed

+31
-19
lines changed

2 files changed

+31
-19
lines changed

axelor-gradle/src/main/java/com/axelor/gradle/AxelorPlugin.java

+21-18
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@
3333
import java.util.Objects;
3434
import org.gradle.api.Plugin;
3535
import org.gradle.api.Project;
36+
import org.gradle.api.Task;
3637
import org.gradle.api.file.ConfigurableFileTree;
3738
import org.gradle.api.plugins.JavaLibraryPlugin;
38-
import org.gradle.api.plugins.JavaPluginConvention;
39+
import org.gradle.api.plugins.JavaPlugin;
40+
import org.gradle.api.plugins.JavaPluginExtension;
3941
import org.gradle.api.tasks.SourceSet;
40-
import org.gradle.api.tasks.compile.AbstractCompile;
4142
import org.gradle.jvm.tasks.Jar;
42-
import org.gradle.language.jvm.tasks.ProcessResources;
4343
import org.gradle.plugins.ide.eclipse.EclipsePlugin;
4444
import org.gradle.plugins.ide.idea.IdeaPlugin;
4545
import org.gradle.util.GradleVersion;
@@ -137,7 +137,9 @@ private void configureCodeGeneration(Project project) {
137137
task.setProcessFiles(files);
138138
});
139139

140-
GenerateCode generateCodeTask =
140+
Task compileTask = project.getTasks().findByName(JavaPlugin.COMPILE_JAVA_TASK_NAME);
141+
Task resourcesTask = project.getTasks().findByName(JavaPlugin.PROCESS_RESOURCES_TASK_NAME);
142+
Task generateCodeTask =
141143
project
142144
.getTasks()
143145
.create(
@@ -148,24 +150,19 @@ private void configureCodeGeneration(Project project) {
148150
task.setGroup(GenerateCode.TASK_GROUP);
149151
});
150152

153+
// add dependencies to optimize up-to-date checks
154+
dependsOn(compileTask, generateCodeTask);
155+
dependsOn(resourcesTask, generateCodeTask);
151156
project.afterEvaluate(
152157
p -> {
153-
AxelorUtils.findAxelorProjects(p).stream()
154-
.map(dep -> dep.getTasks().findByName(GenerateCode.TASK_NAME))
155-
.filter(Objects::nonNull)
156-
.forEach(task -> generateCodeTask.dependsOn(task));
158+
AxelorUtils.findAxelorProjects(p)
159+
.forEach(
160+
d -> {
161+
dependsOn(generateCodeTask, d.getTasks().findByName(GenerateCode.TASK_NAME));
162+
dependsOn(compileTask, d.getTasks().findByName(JavaPlugin.CLASSES_TASK_NAME));
163+
});
157164
});
158165

159-
project
160-
.getTasks()
161-
.withType(AbstractCompile.class)
162-
.all(task -> task.dependsOn(GenerateCode.TASK_NAME));
163-
164-
project
165-
.getTasks()
166-
.withType(ProcessResources.class)
167-
.all(task -> task.dependsOn(GenerateCode.TASK_NAME));
168-
169166
// add src-gen dirs
170167
project
171168
.getExtensions()
@@ -197,4 +194,10 @@ private void configureCodeGeneration(Project project) {
197194
.plus(sourceSet.getCompileClasspath()));
198195
});
199196
}
197+
198+
private void dependsOn(Task task, Task dependency) {
199+
if (task != null && dependency != null) {
200+
task.dependsOn(dependency);
201+
}
202+
}
200203
}

gradle/style.gradle

+10-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ spotless {
2222
exclude '**/webapp/lib/*'
2323
exclude '**/webapp/dist/*'
2424
exclude '**/webapp/node_modules/*'
25+
exclude '**/build/*'
2526
}
2627
indentWithSpaces(2)
2728
trimTrailingWhitespace()
@@ -36,14 +37,22 @@ spotless {
3637

3738
spotlessMisc.dependsOn(spotlessMarkdown)
3839

39-
subprojects {
40+
subprojects { p ->
4041
apply plugin: com.diffplug.gradle.spotless.SpotlessPlugin
4142
spotless {
4243
java {
4344
googleJavaFormat()
4445
}
4546
}
4647
task formatCode(dependsOn: ['licenseFormat', 'spotlessApply'])
48+
49+
// fix up-to-date check issue
50+
p.afterEvaluate {
51+
try {
52+
p.spotlessJava.dependsOn(p.generateCode)
53+
} catch (Exception e) {
54+
}
55+
}
4756
}
4857

4958
task formatCode(dependsOn: 'spotlessApply')

0 commit comments

Comments
 (0)