一. 项目介绍
我这个SpringBoot项目分为2个Jar项目:一个底层MT项目(包含公共的Api层,Service层),一个上层Web项目,具体如下截图:
二. 各层POM文件配置如下
api层的pom.xml打包配置(这里用的是本地的Maven仓库):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>false</skipTests>
</configuration>
</plugin>
</plugins>
</build>
<!-- api的pom里面很干净,里面不应该依赖第三方包-->
<distributionManagement>
<!-- 快照版本 -->
<snapshotRepository>
<id>public-snapshots</id>
<name>robinson Repository</name>
<url>/Users/sunww/Documents/maven/rep/</url>
</snapshotRepository>
<!-- 发布版本 -->
<repository>
<id>public-releases</id>
<name>robinson Repository</name>
<url>/Users/sunww/Documents/maven/rep/</url>
</repository>
</distributionManagement>
service层的pom.xml打包配置:
<build>
<plugins>
<!--解决SpringBoot打包成jar后运行提示没有主清单属性-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
MT层(包含Api和Service层)的pom.xml 打包配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>false</skipTests>
</configuration>
</plugin>
</plugins>
</build>
Web层的pom.xml 打包配置:
<build>
<plugins>
<!--解决SpringBoot打包成jar后运行提示没有主清单属性-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
三. 打包&运行Jar文件
1. 底层打包&运行
cd 到底层MT,执行命令下面命令
MT层打包: mvn -Dmaven.test.skip=true clean package
运行MT层的Service包:java -jar /Users/sunww/Documents/JAVA/robinson/RobinBoot/RobinBootService/target/robinbootService-0.0.1-SNAPSHOT.jar
2. Web层打包&运行
cd 到底层Web,执行命令下面命令
Web层打包:mvn -Dmaven.test.skip=true clean package
运行Web层的jar包:java -jar /Users/sunww/Documents/JAVA/robinson/RobinBootWeb/target/robinBootWeb-0.0.1-SNAPSHOT.jar