Skip to content

Commit bdd1275

Browse files
authored
No need to make runShadow depend on installShadowDist (#1353)
- Split `installShadowOutputs` from `integrationWithApplicationPluginAndJavaToolchains`. - Tweak `canOverrideMainClassAttrInManifestBlock`.
1 parent 6f93d9d commit bdd1275

File tree

4 files changed

+18
-11
lines changed

4 files changed

+18
-11
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
- `ShadowSpec` no longer extends `CopySpec`.
1717
- Overload `relocate`, `transform` and things for better usability in Kotlin.
1818
- **BREAKING CHANGE:** Remove redundant types from function returning. ([#1308](https://github.com/GradleUp/shadow/pull/1308))
19+
- `runShadow` no longer depends on `installShadowDist`. ([#1353](https://github.com/GradleUp/shadow/pull/1353))
1920

2021
**Fixed**
2122

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

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import assertk.assertions.contains
66
import assertk.assertions.containsOnly
77
import assertk.assertions.doesNotContain
88
import assertk.assertions.isEqualTo
9-
import com.github.jengelman.gradle.plugins.shadow.ShadowApplicationPlugin.Companion.SHADOW_INSTALL_TASK_NAME
109
import com.github.jengelman.gradle.plugins.shadow.ShadowBasePlugin.Companion.DISTRIBUTION_NAME
1110
import com.github.jengelman.gradle.plugins.shadow.internal.classPathAttributeKey
1211
import com.github.jengelman.gradle.plugins.shadow.internal.mainClassAttributeKey
@@ -43,9 +42,6 @@ class ApplicationPluginTest : BasePluginTest() {
4342
toolchain.languageVersion = JavaLanguageVersion.of(17)
4443
}
4544
""".trimIndent(),
46-
applicationBlock = """
47-
applicationDefaultJvmArgs = ['--add-opens=java.base/java.lang=ALL-UNNAMED']
48-
""".trimIndent(),
4945
settingsBlock = """
5046
plugins {
5147
id 'org.gradle.toolchains.foojay-resolver-convention'
@@ -65,6 +61,17 @@ class ApplicationPluginTest : BasePluginTest() {
6561
"Hello, World! (foo) from Main",
6662
"Refs: junit.framework.Test",
6763
)
64+
}
65+
66+
@Test
67+
fun installShadowOutputs() {
68+
prepare(
69+
mainClassWithImports = true,
70+
dependenciesBlock = "implementation 'junit:junit:3.8.2'",
71+
applicationBlock = "applicationDefaultJvmArgs = ['--add-opens=java.base/java.lang=ALL-UNNAMED']",
72+
)
73+
74+
run(installShadowDistTask)
6875

6976
val installPath = path("build/install/")
7077
assertThat(installPath.walkEntries()).containsOnly(
@@ -106,7 +113,7 @@ class ApplicationPluginTest : BasePluginTest() {
106113
fun installShadowDoesNotExecuteDependentShadowTask() {
107114
prepare()
108115

109-
run(SHADOW_INSTALL_TASK_NAME)
116+
run(installShadowDistTask)
110117

111118
commonAssertions(jarPath("build/install/myapp-shadow/lib/myapp-1.0-all.jar"))
112119
}
@@ -134,9 +141,9 @@ class ApplicationPluginTest : BasePluginTest() {
134141
}
135142
}
136143

137-
assertions(run(runShadowTask).output, "foo")
144+
assertions(run(runShadowTask, shadowJarTask).output, "foo")
138145
commonAssertions(
139-
jarPath("build/install/myapp-shadow/lib/myapp-1.0-all.jar"),
146+
jarPath("build/libs/myapp-1.0-all.jar"),
140147
entriesContained = entriesInA + arrayOf(mainClass, main2ClassEntry),
141148
mainClassAttr = "my.Main2",
142149
)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import assertk.assertThat
66
import assertk.assertions.doesNotContain
77
import assertk.assertions.isEqualTo
88
import assertk.assertions.isNotNull
9+
import com.github.jengelman.gradle.plugins.shadow.ShadowApplicationPlugin.Companion.SHADOW_INSTALL_TASK_NAME
910
import com.github.jengelman.gradle.plugins.shadow.ShadowApplicationPlugin.Companion.SHADOW_RUN_TASK_NAME
1011
import com.github.jengelman.gradle.plugins.shadow.ShadowJavaPlugin.Companion.SHADOW_JAR_TASK_NAME
1112
import com.github.jengelman.gradle.plugins.shadow.internal.requireResourceAsPath
@@ -56,6 +57,7 @@ abstract class BasePluginTest {
5657
val shadowJarTask = ":$SHADOW_JAR_TASK_NAME"
5758
val serverShadowJarTask = ":server:$SHADOW_JAR_TASK_NAME"
5859
val runShadowTask = ":$SHADOW_RUN_TASK_NAME"
60+
val installShadowDistTask = ":$SHADOW_INSTALL_TASK_NAME"
5961
val shadowDistZipTask = ":shadowDistZip"
6062

6163
val projectScriptPath: Path get() = path("build.gradle")

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ public abstract class ShadowApplicationPlugin : Plugin<Project> {
4040
task.description = "Runs this project as a JVM application using the shadow jar"
4141
task.group = ApplicationPlugin.APPLICATION_GROUP
4242

43-
val jarFile = tasks.installShadowDist.zip(tasks.shadowJar) { i, s ->
44-
i.destinationDir.resolve("lib/${s.archiveFile.get().asFile.name}")
45-
}
46-
task.classpath(jarFile)
43+
task.classpath = files(tasks.shadowJar)
4744

4845
with(applicationExtension) {
4946
task.mainModule.set(mainModule)

0 commit comments

Comments
 (0)