IDEA开发项目SpringBoot项目使用Maven构建
近期用SpringBoot + SpringMVC+ Mybatis-plus开发了一个小项目(估计这个没按时做出来我就可能滚蛋了。哈哈哈,卑微打工仔)
构建和打包的时候遇到了些问题,总结下。希望能给其他人带来帮助。也给自己梳理下知识
项目初略信息
项目是用IDEA开发。使用的技术就是SSM那一套
然后项目的结构是
父工程,定义共有jar包的版本
----------真正的项目,web项目
----------通用帮助类工具,例如统一返回接口
真正需要打包是web项目。但是他有些方法是依赖通用帮助工具类。
好了,背景介绍完毕
步骤
- 打包common通用工具类。将其添加到本来库
a. 找到idea右上角maven,点击通用工具类里面的Lifecycle-clean
然后点击Lifecycle-install
将其打包的本地仓库 - 打包 web项目。同样的右上角 找到当前项目的里 lifecycle-clean,然后lifecycle-package 打包完毕
- 找到项目的target文件夹,里面的jar包就是了
运行Springboot的jar包
java -jar your-jar-name.jar --spring.profiles.active=prod
后面的–spring.profiles.active是指定运行那个properties的配置文件的。我有三个配置文件。dev,test,prod。里面的配置是不一样的。主要是数据库不一样
可能出现的问题
- 问题一 Failed to configure a DataSource: ‘url’ attribute is not specified and no embedd
这个问题我在网上搜了下网上解决方案 他这个方案应该是应该是能解决有些人的问题。但是没能解决我的问题。因为我其实在配置里面添加了数据库配置的。而且我按照方案里面添加注解反而给我引入的新的报错。后面我怀疑是不是 因为maven打包的时候没有加载我的application.properties导致的 问题。然后我再我项目的pom.xml 添加
<!--我感觉打包没有把我的属性文件包含进去,手动包含设置下-->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*.properties</include>
</includes>
</resource>
使其打包的时候包含我的properties文件
- 问题2 spring-xxx-xxx-0.0.1-SNAPSHOT.jar中没有主清单属性
这个网上的方案解决了我的问题方案原文。我就不搬砖了 - 问题3 repackage failed: Unable to find main class
网上的方案也是有效的方案原文
小结
- 选打包依赖的项目,将其添加到本地仓库。再打包目标jar文件
- Spring boot确实比Spring少了很多配置。
- 如果遇到问题,不要烦恼和慌乱,肯定是有问题的。静下心来,肯定能解决的
- 不要在心里夸大问题的难度,我之前总觉得这个问题太难,但是实际上一两个小时也能解决(第一次打包构建项目,第一次用Mybatis-plus构建项目,第一次使用sonar,第一次在项目里面利用反射解决问题,第一次使用Jsoup解析HTML)
- 如果遇到了问题,可以问下其他人(你也可以问我啊)。可能能得到奇效,例如我当时有个爬虫功能,我完全没有思路,问下之前的同学,他回复:Jsoup虽然怎么用可能他也不知道怎么说,但是起码我就有了个方向