关于 SpringBoot 项目使用 Maven 打包之后启动不了的解决办法

当我们完成一个 SpringBoot 项目之后,想打成一个 jar 包,直接使用 java -jar xxx.jar运行

如出现如下问题,说明在我们 jar包内,没有正确的生成 MANIFEST.MF文件

no main manifest attribute in xxx.jar

我们可以解压出 jar包查看 MANIFEST.MF,内容应该大致都如下:

Manifest-Version: 1.0
Created-By: Maven Archiver 3.4.0
Build-Jdk-Spec: 11

正确的情况下应该需要包含一些启动类的以及一些 SpringBoot的版本信息

看到很多网友的解决办法如下:

<packaging>jar</packaging>

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

只需添加这两个即可解决,但是在我这却不行,打开MANIFEST.MF依然没有启动类以及一些 SpringBoot的版本信息

如果跟我一样,则可以尝试下面方式

<plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>SpringBoot版本</version>
        <configuration>
          <mainClass>主类全路径</mainClass>
        </configuration>
        <executions>
          <execution>
            <id>repackage</id>
            <goals>
              <goal>repackage</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>Java版本</source>
          <target>Java版本</target>
          <compilerArgs>
            <arg>-parameters</arg>
          </compilerArgs>
        </configuration>
      </plugin>
    </plugins>

只需要在 pom.xml 里面添加这个 plugin 即可,下方是正确的 MANIFEST.MF文件内容:

Manifest-Version: 1.0
Created-By: Maven Archiver 3.4.0
Build-Jdk-Spec: 11
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.xxx.Application
Spring-Boot-Version: 2.2.6.RELEASE
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值