gradle引入jar的方式很簡單,比如引入dubbo,只要加一行即可:
compile('com.alibaba:dubbo:2.4.10')
有時候我們希望排除依賴,可以這樣寫:
compile('com.alibaba:dubbo:2.4.10'){exclude groupId:'org.springframework'}
但是當你以這樣的方式發佈一個jar包到maven倉庫的時候,就要小心了,依賴你jar包的工程仍然會引入已經被你exclude的jar包。
查看生成的maven pom文件,是這樣的:
<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.4.10</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>null</artifactId> </exclusion> </exclusions> </dependency>
注意其中artifactId(對應gradle中的moduleId)爲null,所以無法被排除。
如果你希望你的依賴在傳遞的時候也被排除,則必須寫上完整的groupId和moduleId:
compile('com.alibaba:dubbo:2.4.10'){exclude groupId:'org.springframework',moduleId:'spring'}
爲了避免出錯,建議各位開發寫排除依賴的時候都帶上moduleId