使用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里不要引用過類的包,應該在業務項目里引用這些包,否則會有包找不到情況
再進行編譯,問題解決!