在 Maven 中使用自定义清单构建 JAR

Build JAR with custom manifest in maven

我正在尝试让 Maven 创建带有自定义 MANIFEST.MF 的工件 jar。

使用以下代码片段听起来很容易:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifestFile>${project.build.directory}/META-INF/MANIFEST.MF</manifestFile>
        </archive>
    </configuration>
</plugin>

问题是,maven-jar-plugin 仍然 "messes" 带有我手动创建的清单。文档说明

The content of your own manifest file will be merged with the entries created by Maven Archiver

不幸的是,清单版本并非如此。它将始终设置为“1.0”。 (我知道理论上这是正确的,但由于我无法影响的原因,我需要一个不同的值)。 关于如何阻止 jar 插件完全接触我的清单或至少保留清单版本的任何想法?

我终于设法使用 maven-antrun-plugin 解决了我的问题:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <phase>package</phase>
            <configuration>
                <target>
                    <jar file="${project.build.directory}/${project.build.finalName}.jar" update="true" manifest="${project.build.directory}/META-INF/MANIFEST.MF" />
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>