maven?傳遞依賴的實現(xiàn)
1、maven 傳遞依賴scope=compile的包
比如:工程A依賴工程B,工程B依賴工程C,那么A工程的jar包含工程C中scope=compile的包
2、排除依賴用<exclusions>
如果A工程只想依賴B,不希望將B工程項下的C工程的包依賴進來,可以:
<exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions>
3、當(dāng)程序中遇到編譯沒問題,運行有問題時,需要查找工程的依賴樹結(jié)構(gòu),看是否存在運行時需要的包 ,示例如下:
modeling-support工程依賴modeling-facade工程,modeling-facade工程依賴了metrics-api工程
modeling-support pom:
<dependency> <groupId>com.xxx</groupId> <artifactId>modeling-facade</artifactId> </dependency>
modeling-facade pom:
<dependency> <groupId>com.xxx</groupId> <artifactId>metrics-api</artifactId> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency>
metrics-api pom:
<dependency> <groupId>org.mvel</groupId> <artifactId>mvel2</artifactId> </dependency>
當(dāng)modeling-support 工程執(zhí)行代碼:Keval.eval(combinExpress, metricSourceIdMap);
由于Keval 是在metrics-api工程里面,所以傳遞依賴后,modeling-support對上述語句編譯沒問題,但是無法執(zhí)行Keval.eval ,因為執(zhí)行此代碼需要mvel2的包,然而modeling-facade 工程已經(jīng)排除了,所以modeling-support 工程也就沒有這個jar,進而運行出錯
到此這篇關(guān)于maven 傳遞依賴的實現(xiàn)的文章就介紹到這了,更多相關(guān)maven 傳遞依賴內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中Map與對象之間互相轉(zhuǎn)換的幾種常用方式
在Java中將對象和Map相互轉(zhuǎn)換是常見的操作,可以通過不同的方式實現(xiàn)這種轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于Java中Map與對象之間互相轉(zhuǎn)換的幾種常用方式,需要的朋友可以參考下2024-01-01Springboot解決no main manifest attribute錯誤
在開發(fā)Springboot項目時,使用java -jar命令運行jar包可能出現(xiàn)no main manifest attribute錯誤,本文就來介紹一下該錯誤的解決方法,感興趣的可以了解一下2024-09-09詳解java如何實現(xiàn)將數(shù)據(jù)導(dǎo)出為yaml
這篇文章主要為大家詳細(xì)介紹了java如何利用snakeyaml和freemarker實現(xiàn)將數(shù)據(jù)導(dǎo)出為yaml文件,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2023-11-11java線程并發(fā)countdownlatch類使用示例
javar的CountDownLatch是個計數(shù)器,它有一個初始數(shù),等待這個計數(shù)器的線程必須等到計數(shù)器倒數(shù)到零時才可繼續(xù)。2014-01-01JAVA中調(diào)用C語言函數(shù)的實現(xiàn)方式
這篇文章主要介紹了JAVA中調(diào)用C語言函數(shù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08