Java: 我自己的 MANIFEST.MF 文件在 maven 构建的 jar 中没有生效
Java: my own MANIFEST.MF file doesn't take effect in a maven built jar
我正在使用intelliJ创建一个maven模块,目录结构是这样的:
--src
--main
--java
--my
--M1.java
--M2.java
--M3.java
--resources
--META-INF
MANIFEST.MF
和猫MANIFEST.MF
Manifest-Version: 0.1.0
Implementation-Title: test manifist
Implementation-Version: 0.0.1
Main-Class: my.M2
和 java 文件:
package my;
public class M2 {
public static void main(String [] args) {
System.out.println("M2");
}
}
然后我"mvn package"构建结果jar file.I提取这个jar,发现jar文件包含一个META-INF/MANIFEST.MF,其中"Main-Class is missing":
$cat META-INF/MANIFEST.MF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: x
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_111
内容完全不同,好像是我自己的META-INF/MANIFEST.MF在我用maven构建这个jar的时候没有任何效果。那么这是为什么,如何让自己的文件生效呢?
感谢lo.t
您需要修改 pom.xml 并添加 maven-jar-plugin 定义:
http://maven.apache.org/shared/maven-archiver/examples/manifestFile.html
我正在使用intelliJ创建一个maven模块,目录结构是这样的:
--src
--main
--java
--my
--M1.java
--M2.java
--M3.java
--resources
--META-INF
MANIFEST.MF
和猫MANIFEST.MF
Manifest-Version: 0.1.0
Implementation-Title: test manifist
Implementation-Version: 0.0.1
Main-Class: my.M2
和 java 文件:
package my;
public class M2 {
public static void main(String [] args) {
System.out.println("M2");
}
}
然后我"mvn package"构建结果jar file.I提取这个jar,发现jar文件包含一个META-INF/MANIFEST.MF,其中"Main-Class is missing":
$cat META-INF/MANIFEST.MF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: x
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_111
内容完全不同,好像是我自己的META-INF/MANIFEST.MF在我用maven构建这个jar的时候没有任何效果。那么这是为什么,如何让自己的文件生效呢?
感谢lo.t
您需要修改 pom.xml 并添加 maven-jar-plugin 定义: http://maven.apache.org/shared/maven-archiver/examples/manifestFile.html