Java:我自己的MANIFEST.MF文件在Maven内置的jar中无效

时间:2019-01-25 14:44:25

标签: java maven jar manifest

我正在使用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包”来生成结果jar文件。我解压缩了这个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时没有起作用。那为什么会这样,以及如何使我自己的文件有效?

非常感谢

1 个答案:

答案 0 :(得分:1)

您需要修改pom.xml并添加maven-jar-plugin定义: http://maven.apache.org/shared/maven-archiver/examples/manifestFile.html