springboot~mvn多個關聯(lian)項目打包(bao)問題
使(shi)用(yong)maven進行構建項(xiang)(xiang)目(mu)時,有時會把公共對象和方(fang)法(fa)抽象在(zai)一(yi)個common公用(yong)項(xiang)(xiang)目(mu)里,而(er)其(qi)它項(xiang)(xiang)目(mu)直(zhi)接(jie)依賴它即可,而(er)在(zai)common項(xiang)(xiang)目(mu)配(pei)置需要注意(yi)一(yi)下,因(yin)為(wei)springboot生成的jar默(mo)認是可執行的jar包,所(suo)(suo)以在(zai)其(qi)它子項(xiang)(xiang)目(mu)編譯(yi)時,會因(yin)為(wei)引(yin)用(yong)common失敗而(er)導致當(dang)前項(xiang)(xiang)目(mu)不能(neng)成功(gong)編譯(yi),而(er)只(zhi)能(neng)去根項(xiang)(xiang)目(mu)進行mvn install來可以,這事實(shi)上很(hen)麻煩,所(suo)(suo)以今天主要解決一(yi)下這個問題。
編譯出現的錯誤
[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里(li)添加如下配置(zhi)
<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里不要引用過類的包,應該在業務項目里引用這些包,否則會有包找不到情況
再(zai)進(jin)行編譯,問題解決!