解決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的時候強(qiáng)行編譯了啟動類。
因此只需要跳過編譯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-12Spring Gateway處理微服務(wù)的路由轉(zhuǎn)發(fā)機(jī)制
我們詳細(xì)地介紹了Spring Gateway,這個基于Spring 5、Spring Boot 2和Project Reactor的API網(wǎng)關(guān),通過這篇文章,我們可以清晰地看到Spring Gateway的工作原理,以及它的強(qiáng)大之處,感興趣的朋友一起看看吧2024-08-08NoHttpResponseException問題分析解決記錄
這篇文章主要為大家介紹了NoHttpResponseException問題分析解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08解決使用httpclient傳遞json數(shù)據(jù)亂碼的問題
這篇文章主要介紹了解決使用httpclient傳遞json數(shù)據(jù)亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01