Skip to content

Commit 91fd0cf

Browse files
committed
issue #205: Run task builds command with unwanted arguments
1 parent 197c3e4 commit 91fd0cf

File tree

8 files changed

+36
-11
lines changed

8 files changed

+36
-11
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.javamodularity.moduleplugin.tasks;
22

33
import org.gradle.api.Project;
4+
import org.gradle.api.file.DuplicatesStrategy;
45
import org.gradle.api.file.FileCollection;
56
import org.gradle.api.logging.Logger;
67
import org.gradle.api.logging.Logging;
@@ -64,7 +65,9 @@ public boolean isMergeRequired() {
6465
}
6566

6667
public Sync createMergeClassesTask() {
67-
return project.getTasks().create(MERGE_CLASSES_TASK_NAME, Sync.class);
68+
Sync sync = project.getTasks().create(MERGE_CLASSES_TASK_NAME, Sync.class);
69+
sync.setDuplicatesStrategy(DuplicatesStrategy.INCLUDE);
70+
return sync;
6871
}
6972

7073
public FileCollection getMergeAdjustedClasspath(FileCollection classpath) {

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ public class ModularJavaExec extends JavaExec {
2525
@Internal
2626
private final List<String> ownJvmArgs = new ArrayList<>();
2727

28+
public ModularJavaExec() {
29+
if(GradleVersion.current().compareTo(GradleVersion.version("6.4")) >= 0) {
30+
this.getModularity().getInferModulePath().set(true);
31+
}
32+
}
33+
2834
List<String> getOwnJvmArgs() {
2935
return ownJvmArgs;
3036
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ private void removeClasspathArgs(CreateStartScripts startScriptsTask) {
134134
}
135135

136136
Path batFile = outputDir.resolve(startScriptsTask.getApplicationName() + ".bat");
137-
replaceScriptContent(batFile, "\"%JAVA_EXE%\" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %(\\S+)%.*", "\"%JAVA_EXE%\" %JAVA_OPTS% %$1% %DEFAULT_JVM_OPTS% %CMD_LINE_ARGS%");
137+
// replaceScriptContent(batFile, "\"%JAVA_EXE%\" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %(\\S+)%.*", "\"%JAVA_EXE%\" %JAVA_OPTS% %$1% %DEFAULT_JVM_OPTS% %CMD_LINE_ARGS%");
138+
replaceScriptContent(batFile, "\"%JAVA_EXE%\" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %(\\S+)%.*", "\"%JAVA_EXE%\" %JAVA_OPTS% %$1% %DEFAULT_JVM_OPTS% %*");
138139
}
139140

140141
private static void replaceLibsPlaceHolder(Path path, String libText, String patchLibText) {

src/test/java/org/javamodularity/moduleplugin/ModulePluginSmokeTest.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void before() throws IOException {
3838

3939
@CartesianProductTest(name = "smokeTest({arguments})")
4040
@CartesianValueSource(strings = {"test-project", "test-project-kotlin", "test-project-groovy"})
41-
@CartesianValueSource(strings = {"5.1", "5.6", "6.3", "6.4.1", "6.5.1", "6.8.3", "7.0", "7.1", "7.2"})
41+
@CartesianValueSource(strings = {"5.1", "5.6", "6.3", "6.4.1", "6.5.1", "6.8.3", "7.0", "7.2"})
4242
void smokeTest(String projectName, String gradleVersion) {
4343
LOGGER.lifecycle("Executing smokeTest of {} with Gradle {}", projectName, gradleVersion);
4444
if(!checkCombination(projectName, gradleVersion)) return;
@@ -86,7 +86,7 @@ void smokeTestRun(String projectName, String gradleVersion) {
8686

8787
@CartesianProductTest(name = "smokeTestJunit5({arguments})")
8888
@CartesianValueSource(strings = {"5.4.2/1.4.2", "5.5.2/1.5.2", "5.7.1/1.7.1"})
89-
@CartesianValueSource(strings = {"5.1", "5.6", "6.3", "6.4.1", "6.5.1", "6.8.3", "7.0"})
89+
@CartesianValueSource(strings = {"5.1", "5.6", "6.3", "6.4.1", "6.5.1", "6.8.3", "7.0", "7.2"})
9090
void smokeTestJunit5(String junitVersionPair, String gradleVersion) {
9191
LOGGER.lifecycle("Executing smokeTestJunit5 with junitVersionPair {} and Gradle {}", junitVersionPair, gradleVersion);
9292
var junitVersionParts = junitVersionPair.split("/");
@@ -107,8 +107,7 @@ void smokeTestJunit5(String junitVersionPair, String gradleVersion) {
107107
}
108108

109109
@CartesianProductTest(name = "smokeTestMixed({arguments})")
110-
// It currently fails with Gradle 7.0
111-
@CartesianValueSource(strings = {"5.1", "5.6", "6.3", "6.4.1", "6.5.1", "6.8.3"/*, "7.0"*/})
110+
@CartesianValueSource(strings = {"5.1", "5.6", "6.3", "6.4.1", "6.5.1", "6.8.3", "7.0", "7.2"})
112111
void smokeTestMixed(String gradleVersion) {
113112
LOGGER.lifecycle("Executing smokeTestMixed with Gradle {}", gradleVersion);
114113
var result = GradleRunner.create()
@@ -220,8 +219,7 @@ void smokeTestRunDemo(String projectName, String gradleVersion) {
220219

221220
@CartesianProductTest(name = "smokeTestRunStartScripts({arguments})")
222221
@CartesianValueSource(strings = {"test-project", "test-project-kotlin", "test-project-groovy"})
223-
// Fails with Gradle versions >= 6.6.
224-
@CartesianValueSource(strings = {"5.1", "5.6", "6.3", "6.4.1", "6.5.1"/*, "6.8.3", "7.0", "7.2"*/})
222+
@CartesianValueSource(strings = {"5.1", "5.6", "6.3", "6.4.1", "6.5.1", "6.8.3", "7.0", "7.2"})
225223
void smokeTestRunStartScripts(String projectName, String gradleVersion) {
226224
LOGGER.lifecycle("Executing smokeTestRunScripts of {} with Gradle {}", projectName, gradleVersion);
227225
if(!checkCombination(projectName, gradleVersion)) return;

test-project-groovy/greeter.javaexec/build.gradle

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import org.gradle.util.GradleVersion
12
import org.javamodularity.moduleplugin.tasks.ModularJavaExec
23

34
dependencies {
@@ -17,7 +18,12 @@ new File("$projectDir/src/main/groovy/demo").eachFileMatch(~/Demo.*\.groovy/) {
1718
task "run$demoClassName"(type: ModularJavaExec) {
1819
group = 'Demo'
1920
description = "Run the $demoClassName program"
20-
main = "greeter.javaexec/demo.$demoClassName"
21+
if(GradleVersion.current().compareTo(GradleVersion.version("6.4")) < 0) {
22+
main = "greeter.javaexec/demo.$demoClassName"
23+
} else {
24+
mainClass = "demo.$demoClassName"
25+
mainModule = 'greeter.javaexec'
26+
}
2127
jvmArgs = ['-Dgreeter.sender=gradle-modules-plugin']
2228
}
2329
}

test-project-kotlin/greeter.javaexec/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ File("${project.projectDir}/src/main/kotlin/demo")
2121
tasks.create<ModularJavaExec>("run$demoClassName") {
2222
group = "Demo"
2323
description = "Run the $demoClassName program"
24-
main = "$moduleName/demo.${demoClassName}Kt"
24+
mainClass.set("demo.${demoClassName}Kt")
25+
mainModule.set(moduleName)
2526
jvmArgs = listOf("-Xmx128m")
2627
}
2728
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
modularity.mixedJavaRelease 8
22

33
apply from: "$rootDir/gradle/shared/greeter.provider.gradle"
4+
5+
jar {
6+
duplicatesStrategy = DuplicatesStrategy.INCLUDE
7+
}

test-project/greeter.javaexec/build.gradle

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import org.gradle.util.GradleVersion
12
import org.javamodularity.moduleplugin.tasks.ModularJavaExec
23

34
dependencies {
@@ -17,7 +18,12 @@ new File("$projectDir/src/main/java/demo").eachFileMatch(~/Demo.*\.java/) { file
1718
task "run$demoClassName"(type: ModularJavaExec) {
1819
group = 'Demo'
1920
description = "Run the $demoClassName program"
20-
main = "greeter.javaexec/demo.$demoClassName"
21+
if(GradleVersion.current().compareTo(GradleVersion.version("6.4")) < 0) {
22+
main = "greeter.javaexec/demo.$demoClassName"
23+
} else {
24+
mainClass = "demo.$demoClassName"
25+
mainModule = 'greeter.javaexec'
26+
}
2127
jvmArgs = ['-Dgreeter.sender=gradle-modules-plugin']
2228
}
2329
}

0 commit comments

Comments
 (0)