Maven不会使用maven jar插件生成MANIFEST文件

Lua*_*Mia 5 java manifest pom.xml maven maven-jar-plugin

我尝试使用maven(mvn包)生成一个.zip文件,并希望在zip中也有一个MANIFEST文件.jar文件本身确实有效.我试图用maven jar插件生成一个MANIFEST文件,但它没有用.我是否必须做其他事情来获取MANIFEST文件,或者是否足以使用此插件?父pom(我展示的父级的父级)有maven程序集插件.(我对maven来说是全新的)

父pom的pom.xml文件:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
Run Code Online (Sandbox Code Playgroud)

模块的pom.xml文件:

<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.6</version>
    <configuration>
      <archive>
        <manifest>
          <mainClass>org.jis.Main</mainClass>
          <addClasspath>true</addClasspath>
        </manifest>
      </archive>
    </configuration>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)

cse*_*nga 5

在你的情况下,Maven 必须被称为:

mvn clean package assembly:single
Run Code Online (Sandbox Code Playgroud)

获得相同结果的另一种方法是修改你的 pom:

  <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> 
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
 </plugin>
Run Code Online (Sandbox Code Playgroud)

然后运行:

mvn clean package
Run Code Online (Sandbox Code Playgroud)

参考:https : //maven.apache.org/plugins/maven-assembly-plugin/usage.html