【发布时间】:2014-07-31 05:52:50
【问题描述】:
如何配置包含在 Jar 文件中的清单文件的内容?现在我正在使用 maven 程序集插件来配置我的 jar 文件。我已经定义了一些 XML 标签,其中包括 pom.xml 的不同值。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>
jar-with-dependencies
</descriptorRef>
</descriptorRefs>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifestEntries>
<Source-JDK>${source.jdk}</Source-JDK>
<Target-JDK>${target.jdk}</Target-JDK>
<GroupId.ArtifactId>${project.groupId}.${project.artifactId}</GroupId.ArtifactId>
<Project.Version>${project.version}</Project.Version>
<Project.Build.SourceEncoding>UTF-8</Project.Build.SourceEncoding>
<Maven.Build.Timestamp>${maven.build.timestamp}</Maven.Build.Timestamp>
</manifestEntries>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>${project.groupId}.myMainClass</mainClass>
</manifest>
</archive>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>assembly-jar-Id</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
在这个解决方案中,我的 jar 文件的清单文件包括所有标签,这对我很重要。但是,如果我使用这些特定标签之一,我会在执行我的 jar 文件期间收到一条错误消息:
Error: An unexpected error occurred while trying to open file ./myJarFile.jar
如果我删除xml标签“manifestEntries”中的所有特定标签,我可以解决这个问题。
【问题讨论】:
-
你为什么使用 maven-assembly-plugin 而不是 maven-jar-plugin?我假设您有一个现有的 Maven 项目,并且您想将这些信息添加到 MANIFEST.MF 文件中?
标签: java maven jar maven-assembly-plugin