idea打包 springboot项目所遇到的坑

最近学习springboot项目,在打成jar包使遇到了问题(解决方法在最后),我原先是直接使用maven install打包的 就是这个命令:在这里插入图片描述
可是在target目录中生成的jar根本运行不起来,提示:项目没有主清单属性,这就很奇怪了,因为在idea中直接运行是没有问题的,于是网上百度了很久,在这里插入图片描述
无非都是说MANIFEST.MF文件里缺少Main-Class: 就是缺少运行的类,
pom.xml中缺少了这么一串代码:

<plugin>
  <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-maven-plugin</artifactId>
   <configuration>
     <mainClass>com.springbootTest.App</mainClass>
   </configuration>
   <executions>
     <execution>
       <goals>
         <goal>repackage</goal>
       </goals>
     </execution>
   </executions>
 </plugin>

可是pom文件加入了这段之后,依然没有起作用,还是没有出现MAIN-CLASS:
几经搜索,又找到了这么一段代码:

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <executions>
	<execution>
	  <goals>
		<goal>repackage</goal>
	  </goals>
	</execution>
  </executions>
</plugin>
 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
      <archive>
        <manifest>
          <mainClass>com.springbootTest.App</mainClass>
        </manifest>
      </archive>
    </configuration>
  </plugin>

加入pom.xml后再次尝试ok,没有报主清单属性错误,但是又有了第二个错误,在这里插入图片描述
main方法报错,没有SpringApplication这个类,很是无解,继续搜索,一般回答都是说缺少jar包什么的,于是我解压查看target目录下打包好的jar文件发现,根本就没有将maven引用的外部jar打进去
在这里插入图片描述
于是猜测是否是打包的方式不对,几经搜索,我决定不使用maven install打包,我换了一种打包方式
1.打开project Structure
在这里插入图片描述
2.选择main方法
在这里插入图片描述
3.选择copy to the output…,修改MANIFEST.MF 文件存放的目录,建议放在resources下(注意这步必须修改,否则不会将MANIFEST.MF文件打入jar包中,运行时会报Error: Invalid or corrupt jarfile x.jar 的错误)
在这里插入图片描述
4.整理项目所依赖的jar包,可以右击output 新建一个文件夹lib,然后将下面maven引用的jar包全部拖进lib下去这里的output directory就是你打包成功后项目jar包生成的路径
在这里插入图片描述
5.修改项目jar包依赖的路径,选中项目,在路径前添加 lib\ 修改(注意,如果你要在linux环境上运行的 这个 “\” 要改为 “/”; Windows系统中用反斜线“\”来表示目录,但是Linux下用正斜线“/”来表示 ,这个很坑,之前就找了好久)
在这里插入图片描述
6.bulid 打包
在这里插入图片描述
在这里插入图片描述

7.查看(lib下面就是maven所引入的jar包,application.properties是项目配置信息,META-INF下是MANIFEST.MF 文件,中存放着版本信息,引用架包路径和主函数信息),然后直接打开cmd命令, java -jar springbootTest.jar运行即可
在这里插入图片描述
8.备注:如果你想application.properties配置信息拿到jar包外部来,方便运维修改,改变运行命令即可:

java -jar -Dserver.port=8090  springbootTest.jar -Dspring.config.location=application.properties

至此已成功打包:至于怎么使用maven install命令成功打包,尚且还在尝试,各位看官大神如果知道可以在评论中留言。。。。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉登的小行星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值