Skip to content

Commit 8ff959e

Browse files
authored
Use default JavaExec error message when main class is not set (#1725)
1 parent 710db9e commit 8ff959e

File tree

3 files changed

+5
-6
lines changed

3 files changed

+5
-6
lines changed

docs/changes/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
and `META-INF/groovy` will be merged into `META-INF/groovy/org.codehaus.groovy.runtime.ExtensionModule`.
1717
- Move injecting `Class-Path` manifest attr logic from `doFirst` into `copy`. ([#1720](https://github.com/GradleUp/shadow/pull/1720))
1818
- Deprecate `InheritManifest`. ([#1722](https://github.com/GradleUp/shadow/pull/1722))
19+
- Use default `JavaExec` error message when main class is not set. ([#1725](https://github.com/GradleUp/shadow/pull/1725))
1920

2021
### Fixed
2122

src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/ApplicationPluginTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,8 @@ class ApplicationPluginTest : BasePluginTest() {
177177
val result = runWithFailure(runShadowPath)
178178

179179
assertThat(result.output).contains(
180-
"The main class must be specified and not left empty in `application.mainClass` or manifest attributes.",
180+
"Error: Could not find or load main class",
181+
"Caused by: java.lang.ClassNotFoundException:",
181182
)
182183
}
183184

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowApplicationPlugin.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,9 @@ public abstract class ShadowApplicationPlugin : Plugin<Project> {
132132
tasks.shadowJar.configure { task ->
133133
task.inputs.property("mainClassName", mainClassName)
134134
task.doFirst("Set $mainClassAttributeKey attribute in the manifest") {
135+
val realClass = mainClassName.orNull
135136
// Inject the attribute if it is not already present.
136-
if (!task.manifest.attributes.contains(mainClassAttributeKey)) {
137-
val realClass = mainClassName.orNull
138-
if (realClass.isNullOrEmpty()) {
139-
error("The main class must be specified and not left empty in `application.mainClass` or manifest attributes.")
140-
}
137+
if (!task.manifest.attributes.contains(mainClassAttributeKey) && !realClass.isNullOrEmpty()) {
141138
task.manifest.attributes[mainClassAttributeKey] = realClass
142139
}
143140
}

0 commit comments

Comments
 (0)