解決maven打包排除類不生效maven-compiler-plugin問題
問題
有個springboot項目B作為另一個項目A的依賴,在B打包的時候需要排除它的啟動類。
按照百度的說法,只需要添加以下配置就可以排除掉。
<build>
<!--打包項目包名-->
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/BApplication.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>但是實際打包后發(fā)現(xiàn)排除并不生效。
原因
1.排除的類在某個類C中import了,類C要編譯就必須編譯排除的類,所以要同時排除掉C。
2.parent pom引入了這個類,導(dǎo)致exclude不生效
解決辦法
在項目B中寫了單元測試,使用了注解
@SpringBootTest(classes={BApplication.class})所以編譯test的時候強行編譯了啟動類。
因此只需要跳過編譯test或者注釋掉
@SpringBootTest(classes={BApplication.class})<properties>
<!--跳過編譯test-->
<maven.test.skip>true</maven.test.skip>
<!--跳過執(zhí)行單元測試-->
<skipTests>true</skipTests>
</properties><build>
<!--打包項目包名-->
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!--覆蓋parent pom的配置-->
<configuration combine.self="override">
<excludes>
<exclude>**/BApplication.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
FreeMarker如何調(diào)用Java靜態(tài)方法及靜態(tài)變量方法
這篇文章主要介紹了FreeMarker如何調(diào)用Java靜態(tài)方法及靜態(tài)變量方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Spring Gateway處理微服務(wù)的路由轉(zhuǎn)發(fā)機制
我們詳細地介紹了Spring Gateway,這個基于Spring 5、Spring Boot 2和Project Reactor的API網(wǎng)關(guān),通過這篇文章,我們可以清晰地看到Spring Gateway的工作原理,以及它的強大之處,感興趣的朋友一起看看吧2024-08-08
NoHttpResponseException問題分析解決記錄
這篇文章主要為大家介紹了NoHttpResponseException問題分析解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
解決使用httpclient傳遞json數(shù)據(jù)亂碼的問題
這篇文章主要介紹了解決使用httpclient傳遞json數(shù)據(jù)亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01

