springboot多模块打war部署先展⽰⼀下⾃⼰项⽬结构
⼀共有5个模块
依赖关系:下⾯的模块依赖上⾯所有的模块
其中 rongke-web是我要部署的模块最终要打war进⾏部署,其他模块均打jar 被rongke-web引⽤。开始打war前准备⼯作
1、⽗l 移除spirngboot ⾃带的tomcat 导⼊外⽤tomcat依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌⼊式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
第⼆步:
在主模块也就是rongke-web 中的l (不要在⽗l中)添加编译插件。
⼀定带上主函数也就是你启动的类不然打war会报错不到主类位置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass&ke.application.Application</mainClass>
</configuration>
</plugin>
</plugins>
</build>
第三步使⽤命令⾏打包
springboot结构⽬录切⾄项⽬⽬录下
打包命令
mvn clean package -st.skip=true
没有成功报错
第⼀个模块编译失败。查了半天原因,⽹上原因各种各样。我的原因是我的⽗l中存在mavne编译插件
<plugin>
<groupId> org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<fork>true</fork>
</configuration>
</plugin>
注释掉这段代码后重新打包有报错
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK
maven不到我的jdk了
于是⽹上搜索基本上都是eclipse解决不到jdk的版本然⽽我⽤的是idea
⽹上有建议在⽗l中配置maven插件告诉maven jdk的位置于是重新打开注释掉的代码
<plugin>
<groupId> org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<executable>
D:\Java\jdk1.8.0_131\
</executable>
<fork>true</fork>
</configuration>
</plugin>
然⽽再次执⾏ mvn -st.skip -U clean package 打war时再次出现第⼀次打包时候的错误于是重新注释掉这段代码更换⽅法
于是重新配置jdk. 之前都配置jdk环境变量时候直接在path中添加D:\Java\jdk1.8.0_191\bin
现在改变配置⽅式,创建⼀个JAVA_HOME 配置变量值
然后在path中添加
于是重新打包
mvn -st.skip -U clean package
可以看到成功了
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论