in src/main/java/org/apache/maven/plugins/install/InstallFileMojo.java [273:337]
private File readingPomFromJarFile() throws MojoExecutionException {
File pomFile = null;
JarFile jarFile = null;
try {
Pattern pomEntry = Pattern.compile("META-INF/maven/.*/pom\\.xml");
jarFile = new JarFile(file);
Enumeration<JarEntry> jarEntries = jarFile.entries();
while (jarEntries.hasMoreElements()) {
JarEntry entry = jarEntries.nextElement();
if (pomEntry.matcher(entry.getName()).matches()) {
getLog().debug("Loading " + entry.getName());
InputStream pomInputStream = null;
OutputStream pomOutputStream = null;
try {
pomInputStream = jarFile.getInputStream(entry);
String base = file.getName();
if (base.indexOf('.') > 0) {
base = base.substring(0, base.lastIndexOf('.'));
}
pomFile = File.createTempFile(base, ".pom");
pomOutputStream = Files.newOutputStream(pomFile.toPath());
IOUtil.copy(pomInputStream, pomOutputStream);
pomOutputStream.close();
pomOutputStream = null;
pomInputStream.close();
pomInputStream = null;
processModel(readModel(pomFile));
break;
} finally {
IOUtil.close(pomInputStream);
IOUtil.close(pomOutputStream);
}
}
}
if (pomFile == null) {
getLog().info("pom.xml not found in " + file.getName());
}
} catch (IOException e) {
// ignore, artifact not packaged by Maven
} finally {
if (jarFile != null) {
try {
jarFile.close();
} catch (IOException e) {
// we did our best
}
}
}
return pomFile;
}