idea打包 springboot项目所遇到的坑

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


  org.springframework.boot
   spring-boot-maven-plugin
   
     com.springbootTest.App
   
   
     
       
         repackage
       
     
   
 

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


  org.springframework.boot
  spring-boot-maven-plugin
  
	
	  
		repackage
	  
	
  

 
    org.apache.maven.plugins
    maven-jar-plugin
    
      
        
          com.springbootTest.App
        
      
    
  

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

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

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

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

你可能感兴趣的:(项目部署)