@@ -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