返回

Maven 打包遇到 "没有主属性清单" 错误?4步搞定!

后端

Maven 打包中的“没有主属性清单”错误及其解决方法

在使用 Maven 进行 Java 项目打包时,可能会遇到“没有主属性清单”的错误。理解这个错误的原因及其解决办法至关重要,以确保顺利打包和部署应用程序。

什么是“没有主属性清单”错误?

在 Maven 打包过程中,“没有主属性清单”错误表示打包生成的 JAR 文件中缺少了 MANIFEST.MF 文件,或者 MANIFEST.MF 文件中缺少了 Main-Class 属性。

如何解决“没有主属性清单”错误?

解决此错误涉及以下步骤:

  1. 检查 Maven 打包插件是否正确引入
    确保您的 POM 文件中已引入 org.apache.maven.plugins:maven-jar-plugin,并将其版本与您的 Spring Boot 版本相匹配。

  2. 添加 配置
    标签下,添加 配置,指定用于打包的特定目标。

  3. 修改 POM 文件
    添加以下配置到您的 POM 文件中:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.2.0</version>
      <executions>
        <execution>
          <goals>
            <goal>jar</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <archive>
          <manifest>
            <mainClass>com.example.MainClass</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>
</build>
  1. 添加主属性清单
    创建一个名为 MANIFEST.MF 的文件,并添加以下内容:
Manifest-Version: 1.0
Main-Class: com.example.MainClass

总结

通过遵循这些步骤,您可以解决 Maven 打包中的“没有主属性清单”错误。这将确保您的 JAR 文件包含必需的信息,以便正确运行应用程序。

常见问题解答

  1. 为什么会发生“没有主属性清单”错误?

    此错误通常是由以下原因引起的:

    • Maven 打包插件未正确引入。
    • 缺少 配置。
    • POM 文件配置不正确。
    • 缺少 MANIFEST.MF 文件。
  2. 如何检查 Maven 打包插件是否正确引入?

    检查 POM 文件中的 标签,确保已声明以下依赖项:

<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>3.2.0</version>
</dependency>
  1. 如何添加 配置?

    标签内添加以下配置:

<executions>
  <execution>
    <goals>
      <goal>jar</goal>
    </goals>
  </execution>
</executions>
  1. 如何在 POM 文件中修改 Main-Class 属性?

    元素内添加 元素,并在其中指定 Main-Class 属性:

<archive>
  <manifest>
    <mainClass>com.example.MainClass</mainClass>
  </manifest>
</archive>
  1. 如何添加 MANIFEST.MF 文件?

    在您的项目中创建一个名为 MANIFEST.MF 的文件,并添加以下内容:

Manifest-Version: 1.0
Main-Class: com.example.MainClass