33
33
import java .util .Objects ;
34
34
import org .gradle .api .Plugin ;
35
35
import org .gradle .api .Project ;
36
+ import org .gradle .api .Task ;
36
37
import org .gradle .api .file .ConfigurableFileTree ;
37
38
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 ;
39
41
import org .gradle .api .tasks .SourceSet ;
40
- import org .gradle .api .tasks .compile .AbstractCompile ;
41
42
import org .gradle .jvm .tasks .Jar ;
42
- import org .gradle .language .jvm .tasks .ProcessResources ;
43
43
import org .gradle .plugins .ide .eclipse .EclipsePlugin ;
44
44
import org .gradle .plugins .ide .idea .IdeaPlugin ;
45
45
import org .gradle .util .GradleVersion ;
@@ -137,7 +137,9 @@ private void configureCodeGeneration(Project project) {
137
137
task .setProcessFiles (files );
138
138
});
139
139
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 =
141
143
project
142
144
.getTasks ()
143
145
.create (
@@ -148,24 +150,19 @@ private void configureCodeGeneration(Project project) {
148
150
task .setGroup (GenerateCode .TASK_GROUP );
149
151
});
150
152
153
+ // add dependencies to optimize up-to-date checks
154
+ dependsOn (compileTask , generateCodeTask );
155
+ dependsOn (resourcesTask , generateCodeTask );
151
156
project .afterEvaluate (
152
157
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
+ });
157
164
});
158
165
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
-
169
166
// add src-gen dirs
170
167
project
171
168
.getExtensions ()
@@ -197,4 +194,10 @@ private void configureCodeGeneration(Project project) {
197
194
.plus (sourceSet .getCompileClasspath ()));
198
195
});
199
196
}
197
+
198
+ private void dependsOn (Task task , Task dependency ) {
199
+ if (task != null && dependency != null ) {
200
+ task .dependsOn (dependency );
201
+ }
202
+ }
200
203
}
0 commit comments