Я строю uber jar, и я пытаюсь вытащить информацию о версии файла манифеста суб-библиотек. По какой-то причине информация о манифестах больше не появляется в банке.Как получить субблочные манифесты из uber jar
Это был проект, построенный с помощью плагина войны и работавший, однако я не могу понять, как получить такое же поведение с плагином jar.
Адрес этой конфигурации сейчас. Я не уверен, почему он больше не работает.
Как я могу извлечь информацию о манифесте библиотеки или что происходит, что делает это неработоспособным?
Исполняемый файл ПОМ
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>package-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.clearwateranalytics.perseus.worker.PerseusWorker</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Implementation-Build>${build.number}</Implementation-Build>
<Build-Date>${maven.build.timestamp}</Build-Date>
</manifestEntries>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Библиотека ПОМ
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/java</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Implementation-Build>${build.number}</Implementation-Build>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
метод Библиотека для получения информации о сборке
private static String getBuildNumber()
{
try
{
Enumeration<URL> resources = ServerVersionDao.class.getClassLoader().getResources("META-INF/MANIFEST.MF");
while (resources.hasMoreElements())
{
try
{
Manifest manifest = new Manifest(resources.nextElement().openStream());
Attributes attributes = manifest.getMainAttributes();
if ("perseus-server-lib".equals(attributes.getValue("Implementation-Title")))
{
String versionNumber = getVersion(ServerVersionDao.class);
String buildNumber = attributes.getValue("Implementation-Build");
String build = "";
if (versionNumber != null)
build += versionNumber;
if (buildNumber != null)
build += " b" + buildNumber;
if (!build.trim().isEmpty())
return build;
}
}
catch (IOException ex)
{
}
}
}
catch (Exception ex)
{
}
throw new IllegalStateException("Got here!!!!");
}