removed extraclasspath manifest attribute when Gradle task property is empty

This commit is contained in:
2024-02-28 06:49:43 +08:00
parent 26dd1aaf86
commit 9c63bb50be
2 changed files with 13 additions and 9 deletions

View File

@@ -1,7 +1,7 @@
woggioniMavenRepositoryUrl=https://woggioni.net/mvn/ woggioniMavenRepositoryUrl=https://woggioni.net/mvn/
publishMavenRepositoryUrl=https://mvn.woggioni.net/ publishMavenRepositoryUrl=https://mvn.woggioni.net/
lys.version = 2023.10.05 lys.version = 2024.02.24
version.envelope=2023.10.05 version.envelope=2024.02.28
version.gradle=7.6 version.gradle=7.6

View File

@@ -292,13 +292,17 @@ public abstract class EnvelopeJarTask extends AbstractArchiveTask {
mainAttributes.put(new Attributes.Name("Can-Redefine-Classes"), "true"); mainAttributes.put(new Attributes.Name("Can-Redefine-Classes"), "true");
mainAttributes.put(new Attributes.Name("Can-Retransform-Classes"), "true"); mainAttributes.put(new Attributes.Name("Can-Retransform-Classes"), "true");
String separator = "" + Constants.EXTRA_CLASSPATH_ENTRY_SEPARATOR; String separator = "" + Constants.EXTRA_CLASSPATH_ENTRY_SEPARATOR;
ListProperty<String> extraClasspath = EnvelopeJarTask.this.getExtraClasspath(); ListProperty<String> extraClasspathProperty = EnvelopeJarTask.this.getExtraClasspath();
if(extraClasspath.isPresent()) { java.util.Optional.of(extraClasspathProperty)
String extraClasspathString = extraClasspath.get().stream() .filter(ListProperty::isPresent)
.map(it -> it.replace(separator, separator + separator) .map(ListProperty::get)
).collect(Collectors.joining(separator)); .filter(l -> !l.isEmpty())
mainAttributes.put(new Attributes.Name(Constants.ManifestAttributes.EXTRA_CLASSPATH), extraClasspathString); .ifPresent(extraClasspath -> {
} String extraClasspathString = extraClasspath.stream()
.map(it -> it.replace(separator, separator + separator)
).collect(Collectors.joining(separator));
mainAttributes.put(new Attributes.Name(Constants.ManifestAttributes.EXTRA_CLASSPATH), extraClasspathString);
});
if(getMainClass().isPresent()) { if(getMainClass().isPresent()) {
mainAttributes.putValue(Constants.ManifestAttributes.MAIN_CLASS, getMainClass().get()); mainAttributes.putValue(Constants.ManifestAttributes.MAIN_CLASS, getMainClass().get());
} }