springboot 多模块打war 部署
先展示一下自己项目结构
一共有5个模块
依赖关系:下面的模块依赖上面所有的模块
其中 rongke-web是我要部署的模块 最终要打war进行部署,其他模块均打jar 被rongke-web引用。
开始打war前准备工作
1、父pom.xml 移除spirngboot 自带的tomcat 导入外用tomcat依赖
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
javax.servlet
javax.servlet-api
3.1.0
provided
第二步:
在主模块 也就是rongke-web 中的pom.xml (不要在父pom.xml中)添加编译插件。
一定带上主函数 也就是你启动的类 不然打war会报错找不到主类位置
org.springframework.boot
spring-boot-maven-plugin
com.rongke.application.Application
第三步 使用命令行打包
目录切至项目目录下
打包命令
mvn clean package -Dmaven.test.skip=true
没有成功 报错
第一个模块 编译失败。查了半天原因,网上原因各种各样。我的原因是我的父pom.xml中存在mavne编译插件
org.apache.maven.plugins
maven-compiler-plugin
1.8
1.8
UTF-8
true
注释掉这段代码后重新打包 有报错
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK
maven找不到我的jdk了
于是网上搜索 基本上都是eclipse解决找不到jdk的版本 然而我用的是idea
网上有建议在父pom.xml中配置maven插件 告诉maven jdk的位置 于是重新打开注释掉的代码
org.apache.maven.plugins
maven-compiler-plugin
1.8
1.8
UTF-8
D:\Java\jdk1.8.0_131\bin\javac.exe
true
然而再次执行 mvn -Dmaven.test.skip -U clean package 打war时再次出现第一次打包时候的错误 于是重新注释掉这段代码
更换方法
于是重新配置jdk. 之前都配置jdk环境变量时候直接在path中添加D:\Java\jdk1.8.0_191\bin
现在改变配置方式,创建一个JAVA_HOME 配置变量值
然后在path中添加
于是重新 打包
mvn -Dmaven.test.skip -U clean package
可以看到成功了