Re-add Spring-Boot-Commit-Id to MANIFEST.MF of created jars
This commit is contained in:
parent
6b599b8483
commit
498ca07698
|
@ -80,6 +80,44 @@
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>exec-maven-plugin</artifactId>
|
||||||
|
<version>1.1.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>generate-resources</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>exec</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<executable>git</executable>
|
||||||
|
<arguments>
|
||||||
|
<argument>log</argument>
|
||||||
|
<argument>--pretty=format:Spring-Boot-Commit-Id: %H</argument>
|
||||||
|
<argument>-n1</argument>
|
||||||
|
</arguments>
|
||||||
|
<outputFile>${project.build.directory}/build-number.mf</outputFile>
|
||||||
|
<successCodes>
|
||||||
|
<!-- Skip failures due to missing Git or the project not being a Git repo
|
||||||
|
(needed for add-ons which ultimately extend this POM but don't use Git) -->
|
||||||
|
<successCode>0</successCode>
|
||||||
|
<successCode>1</successCode>
|
||||||
|
<successCode>127</successCode>
|
||||||
|
<successCode>128</successCode>
|
||||||
|
</successCodes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-jar-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<archive>
|
||||||
|
<manifestFile>${project.build.directory}/build-number.mf</manifestFile>
|
||||||
|
</archive>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -18,8 +18,10 @@ package org.springframework.boot.loader.tools;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.jar.JarFile;
|
import java.util.jar.JarFile;
|
||||||
import java.util.jar.Manifest;
|
import java.util.jar.Manifest;
|
||||||
|
import java.util.zip.ZipEntry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility class that can be used to repackage an archive so that it can be executed using
|
* Utility class that can be used to repackage an archive so that it can be executed using
|
||||||
|
@ -34,6 +36,8 @@ public class Repackager {
|
||||||
private static final String START_CLASS_ATTRIBUTE = "Start-Class";
|
private static final String START_CLASS_ATTRIBUTE = "Start-Class";
|
||||||
|
|
||||||
private static final String BOOT_VERSION_ATTRIBUTE = "Spring-Boot-Version";
|
private static final String BOOT_VERSION_ATTRIBUTE = "Spring-Boot-Version";
|
||||||
|
|
||||||
|
private static final String GIT_COMMIT_ATTRIBUTE = "Spring-Boot-Commit-Id";
|
||||||
|
|
||||||
private String mainClass;
|
private String mainClass;
|
||||||
|
|
||||||
|
@ -181,6 +185,28 @@ public class Repackager {
|
||||||
|
|
||||||
String bootVersion = getClass().getPackage().getImplementationVersion();
|
String bootVersion = getClass().getPackage().getImplementationVersion();
|
||||||
manifest.getMainAttributes().putValue(BOOT_VERSION_ATTRIBUTE, bootVersion);
|
manifest.getMainAttributes().putValue(BOOT_VERSION_ATTRIBUTE, bootVersion);
|
||||||
|
|
||||||
|
String gitCommitHash = null;
|
||||||
|
JarFile jarFile = null;
|
||||||
|
try {
|
||||||
|
URL classContainer = getClass().getProtectionDomain().getCodeSource().getLocation();
|
||||||
|
if (classContainer.toString().endsWith(".jar")) {
|
||||||
|
jarFile = new JarFile(new File(classContainer.toURI()), false);
|
||||||
|
ZipEntry manifestEntry = jarFile.getEntry("META-INF/MANIFEST.MF");
|
||||||
|
gitCommitHash = new Manifest(jarFile.getInputStream(manifestEntry)).
|
||||||
|
getMainAttributes().getValue(GIT_COMMIT_ATTRIBUTE);
|
||||||
|
}
|
||||||
|
} catch (Exception ignoreAndMoveOn) { }
|
||||||
|
finally {
|
||||||
|
if (jarFile != null) {
|
||||||
|
try { jarFile.close(); }
|
||||||
|
catch (IOException ignored) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gitCommitHash != null && gitCommitHash.length() > 0) {
|
||||||
|
manifest.getMainAttributes().putValue(GIT_COMMIT_ATTRIBUTE, gitCommitHash);
|
||||||
|
}
|
||||||
|
|
||||||
return manifest;
|
return manifest;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue