成功解决 XXX--1.0-SNAPSHOT.jar中没有主清单属性

问题描述

在运行使用maven打包的项目之后,运行项目发现主类没有找到。提示XXX--1.0-SNAPSHOT.jar中没有主清单属性。

在这里插入图片描述


问题原因

maven在打包时没有配置主类。


解决方案

如果您使用的是Springboot框架,那么只需要在pom.xml中添加如下配置,会自动检测主类。

<build>

    <plugins>

        <plugin>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-maven-plugin</artifactId>

        </plugin>

    </plugins>

</build>

如果你是其他项目,你需要手动定位到主类。假设有如下主类。

<build>

    <finalName>{file_name}</finalName><!-- 导出jar的名字 -->

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-shade-plugin</artifactId>

        <version>3.2.0</version>

        <executions>

          <execution>

            <phase>package</phase>

            <goals>

              <goal>shade</goal>

            </goals>

            <configuration>

              <transformers>

                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

                  <mainClass>{Mainclass}</mainClass>

                  <!-- 主类的位置,例如上图文件,主类配置应为: -->

                  <!-- <mainClass>{top.nihilwater.App}</mainClass> -->

                </transformer>

              </transformers>

            </configuration>

          </execution>

        </executions>

      </plugin>

    </plugins>

  </build>


有话要说