项目结构
global 父类工程
|
|-- core 核心代码
|
|-- api (依赖core项目)
|
...
..
.
问题1. 在maven编译的时候会自动执行单元测试
解决办法:
# properties 设置 skipTests属性为true,跳过测试
<properties>
<skipTests>true</skipTests>
</properties>
# 依赖 spring-boot-maven-plugin 插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
问题2. core可以正常编译,并且有生成jar包,依赖于core的api项目编译时,提示 com.xx.xx (依赖于core的包) 包不存在
解决办法
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
</plugins>
</build>
spring-boot工程打包编译时,会生成两种jar包,一种是普通的jar,另一种是可执行jar。默认情况下,这两种jar的名称相同,在不做配置的情况下,普通的jar先生成,可执行jar后生成,所以可执行jar会覆盖普通的jar。
通过在core.pom里面配置,最后成功编译
--------------------------------------------------------------- 分割线 2019\2\11 ---------------------------------------------------------
在将api编译成jar包,通过java -jar api.jar 命令执行的时候报错,提示引用core的class找不到,但是编译没报错。
原来需要在pom里面的<build>节点,spring-boot-maven-plugin 插件添加以下配置
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>