Skip to content

Commit 2b317ad

Browse files
committed
fix: replace deprecated API only if Gradle is newer or same to v6.1
1 parent 59de0ab commit 2b317ad

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

src/main/java/org/javamodularity/moduleplugin/tasks/CompileModuleInfoTask.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,15 @@ public void execute(Task task) {
5959
File moduleInfoDir = helper().getModuleInfoDir();
6060
jar.from(moduleInfoDir);
6161
jar.doFirst(task -> {
62-
File classesDir = helper().mainSourceSet().getJava().getOutputDir();
62+
File classesDir;
63+
if (GradleVersion.current().compareTo(GradleVersion.version("6.1")) >= 0) {
64+
// SourceDirectorySet#getClassesDirectory() is supported from Gradle 6.1
65+
// https://docs.gradle.org/6.1/javadoc/org/gradle/api/file/SourceDirectorySet.html#getClassesDirectory--
66+
classesDir = helper().mainSourceSet().getJava().getClassesDirectory().get().getAsFile();
67+
} else {
68+
classesDir = helper().mainSourceSet().getJava().getOutputDir();
69+
}
70+
6371
File mainModuleInfoFile = new File(classesDir, "module-info.class");
6472
File customModuleInfoFile = new File(moduleInfoDir, "module-info.class");
6573
if(mainModuleInfoFile.isFile() && customModuleInfoFile.isFile()) {
@@ -82,7 +90,13 @@ private JavaCompile preconfigureCompileModuleInfoJava(JavaCompile compileJava) {
8290
compileModuleInfoJava.setSource(pathToModuleInfoJava());
8391
compileModuleInfoJava.getOptions().setSourcepath(project.files(pathToModuleInfoJava().getParent()));
8492

85-
compileModuleInfoJava.setDestinationDir(helper().getModuleInfoDir());
93+
if (GradleVersion.current().compareTo(GradleVersion.version("6.1")) >= 0) {
94+
// AbstractCompile#getDestinationDirectory() is supported from Gradle 6.1
95+
// https://docs.gradle.org/6.1/javadoc/org/gradle/api/tasks/compile/AbstractCompile.html#getDestinationDirectory--
96+
compileModuleInfoJava.getDestinationDirectory().set(helper().getModuleInfoDir());
97+
} else {
98+
compileModuleInfoJava.setDestinationDir(helper().getModuleInfoDir());
99+
}
86100

87101
// we need all the compiled classes before compiling module-info.java
88102
compileModuleInfoJava.dependsOn(compileJava);

0 commit comments

Comments
 (0)