git://source.jalview.org
/
jalview.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
546cce1
)
JAL-4373 Fix Main-Class and other attribute settings in the shadowJar manifest. It...
author
Ben Soares
<b.soares@dundee.ac.uk>
Fri, 19 Jan 2024 16:11:14 +0000
(16:11 +0000)
committer
Ben Soares
<b.soares@dundee.ac.uk>
Fri, 19 Jan 2024 16:11:14 +0000
(16:11 +0000)
build.gradle
patch
|
blob
|
history
diff --git
a/build.gradle
b/build.gradle
index
3b81404
..
3ed6c56
100644
(file)
--- a/
build.gradle
+++ b/
build.gradle
@@
-2150,6
+2150,16
@@
task cleanDist {
}
}
+task launcherJar(type: Jar) {
+ manifest {
+ attributes (
+ "Main-Class": shadow_jar_main_class,
+ "Implementation-Version": JALVIEW_VERSION,
+ "Application-Name": applicationName
+ )
+ }
+}
+
shadowJar {
group = "distribution"
description = "Create a single jar file with all dependency libraries merged. Can be run with java -jar"
shadowJar {
group = "distribution"
description = "Create a single jar file with all dependency libraries merged. Can be run with java -jar"
@@
-2163,6
+2173,10
@@
shadowJar {
from groovyJars
from otherJars
from groovyJars
from otherJars
+ manifest {
+ // shadowJar manifest must inheritFrom another Jar task. Can't set attributes here.
+ inheritFrom(project.tasks.launcherJar.manifest)
+ }
// we need to include the groovy-swing Include-Package for it to run in the shadowJar
doFirst {
def jarFileManifests = []
// we need to include the groovy-swing Include-Package for it to run in the shadowJar
doFirst {
def jarFileManifests = []
@@
-2172,9
+2186,7
@@
shadowJar {
jarFileManifests += mf
}
}
jarFileManifests += mf
}
}
-
manifest {
manifest {
- attributes "Implementation-Version": JALVIEW_VERSION, "Application-Name": applicationName
from (jarFileManifests) {
eachEntry { details ->
if (!details.key.equals("Import-Package")) {
from (jarFileManifests) {
eachEntry { details ->
if (!details.key.equals("Import-Package")) {
@@
-2187,6
+2199,7
@@
shadowJar {
duplicatesStrategy "INCLUDE"
duplicatesStrategy "INCLUDE"
+ // this mainClassName is mandatory but gets ignored due to manifest created in doFirst{}. Set the Main-Class as an attribute in launcherJar instead
mainClassName = shadow_jar_main_class
mergeServiceFiles()
classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION
mainClassName = shadow_jar_main_class
mergeServiceFiles()
classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION