2018-10-25 23:10:16 +02:00
|
|
|
Use Java major version for manifest's Created-by
|
|
|
|
|
|
|
|
No need of detailed version such java.vm.version. Java's jar command
|
|
|
|
uses java.version when it fills the manifest's "Created-by" field,
|
|
|
|
let's make ant do the same.
|
|
|
|
|
|
|
|
Using a detailed version makes that every Java release triggers a
|
|
|
|
new publication for ant-based applications, only because a line in
|
|
|
|
manifest has changed - not because the binary or dependencies have
|
|
|
|
changed. Using a less detailed version reduces these publications.
|
|
|
|
|
|
|
|
Using a less detailed version also prevents more subtle problems
|
|
|
|
such as in boo#1110024: noarch packages differ depending on the
|
|
|
|
builder architecture, when Java vm version contains an architecture
|
|
|
|
information (which is the case for openSUSE, though it's probably
|
|
|
|
not relevant).
|
|
|
|
|
|
|
|
--
|
|
|
|
--- a/src/main/org/apache/tools/ant/taskdefs/Manifest.java
|
|
|
|
+++ b/src/main/org/apache/tools/ant/taskdefs/Manifest.java
|
2019-11-08 12:17:19 +01:00
|
|
|
@@ -760,10 +760,7 @@
|
|
|
|
defManifest);
|
|
|
|
}
|
|
|
|
Manifest defaultManifest = new Manifest(new InputStreamReader(in, JAR_CHARSET));
|
|
|
|
- String version = System.getProperty("java.runtime.version");
|
|
|
|
- if (version == null) {
|
|
|
|
- version = System.getProperty("java.vm.version");
|
|
|
|
- }
|
|
|
|
+ String version = System.getProperty("java.version");
|
|
|
|
Attribute createdBy = new Attribute("Created-By", version
|
|
|
|
+ " (" + System.getProperty("java.vm.vendor") + ")");
|
|
|
|
defaultManifest.getMainSection().storeAttribute(createdBy);
|