Support image building with Maven and war packaging
This commit updates the Maven image building goal to support building images from executable and non-executable war files. Fixes gh-23823
This commit is contained in:
@@ -218,23 +218,26 @@ public class BuildImageMojo extends AbstractPackagerMojo {
|
||||
}
|
||||
|
||||
private TarArchive getApplicationContent(Owner owner, Libraries libraries) {
|
||||
ImagePackager packager = getConfiguredPackager(() -> new ImagePackager(getJarFile()));
|
||||
ImagePackager packager = getConfiguredPackager(() -> new ImagePackager(getArchiveFile()));
|
||||
return new PackagedTarArchive(owner, libraries, packager);
|
||||
}
|
||||
|
||||
private File getJarFile() {
|
||||
private File getArchiveFile() {
|
||||
// We can use 'project.getArtifact().getFile()' because that was done in a
|
||||
// forked lifecycle and is now null
|
||||
StringBuilder name = new StringBuilder(this.finalName);
|
||||
if (StringUtils.hasText(this.classifier)) {
|
||||
name.append("-").append(this.classifier);
|
||||
}
|
||||
name.append(".jar");
|
||||
File jarFile = new File(this.sourceDirectory, name.toString());
|
||||
if (!jarFile.exists()) {
|
||||
throw new IllegalStateException("Executable jar file required for building image");
|
||||
File archiveFile = new File(this.sourceDirectory, name.toString() + ".jar");
|
||||
if (archiveFile.exists()) {
|
||||
return archiveFile;
|
||||
}
|
||||
return jarFile;
|
||||
archiveFile = new File(this.sourceDirectory, name.toString() + ".war");
|
||||
if (archiveFile.exists()) {
|
||||
return archiveFile;
|
||||
}
|
||||
throw new IllegalStateException("A jar or war file is required for building image");
|
||||
}
|
||||
|
||||
private BuildRequest customize(BuildRequest request) {
|
||||
|
||||
Reference in New Issue
Block a user