maven 没有为 spring boot 项目创建 META-INF

chi*_*wan 7 java maven-plugin maven

当我构建 Spring boot 项目时,它还会创建一个目标文件夹和目标/类,但它不会创建任何 META-INF。我还包括依赖 -

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
    <archive>
        <index>true</index>
        <manifest>
            <addClasspath>true</addClasspath>
        </manifest>
        <manifestEntries>
            <mode>development</mode>
            <url>${project.url}</url>
            <key>value</key>
        </manifestEntries>
    </archive>
</configuration>
Run Code Online (Sandbox Code Playgroud)

Nam*_*man 5

有两种方法可以做到这一点。

  1. 形成maven-jar-plugin文档:

请注意,以下参数已从插件配置中完全删除:

useDefaultManifestFile
Run Code Online (Sandbox Code Playgroud)

如果您需要定义自己的 MANIFEST.MF 文件,您可以简单地通过 Maven Archiver 配置来实现,如下例所示:

<configuration>
    <archive>
        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
    </archive>
</configuration>
Run Code Online (Sandbox Code Playgroud)

您可以在其中放置项目的MANIFEST.MF下文件夹。src/main/resources/META-INF命令

mvn clean package
Run Code Online (Sandbox Code Playgroud)

默认情况下将使用 src/main/resources 构建项目 jar。

  1. 插件使用说明指出

从版本 2.1 开始,maven-jar-plugin 使用 Maven Archiver 3.1.1。这意味着默认情况下它不再在清单中创建规范和实现详细信息。如果您想要它们,您必须在插件配置中明确说明。

可以使用以下方法完成:

<manifest>
     <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
     <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
Run Code Online (Sandbox Code Playgroud)