使用maven进行构建项目时,有时会把公共对象和方法抽象在一个common公用项目里,而其它项目直接依赖它即可,而在common项目配置需要注意一下,因为springboot生成的jar默认是可执行的jar包,所以在其它子项目编译时,会因为引用common失败而导致当前项目不能成功编译,而只能去根项目进行mvn install来可以,这事实上很麻烦,所以今天主要解决一下这个问题。

编译出现的错误

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project projectA: Compilation failure

解决方案

如果你的common里的main入口方法时

在common项目的pom.xml里添加如下配置 

     <plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--供其它项目依赖的,不可执行的Jar包中 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>

如果你的common里没有main方法,只是一些类库时

可以把plugin删除掉,然后在common里不要引用过类的包,应该在业务项目里引用这些包,否则会有包找不到情况

再进行编译,问题解决!

作者:仓储大叔,张占岭,
荣誉:微软MVP