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文件,是这样的:

      
        com.alibaba
        dubbo
        2.4.10
        
          
            org.springframework
            null
          
        
      

注意其中artifactId(对应gradle中的moduleId)为null,所以无法被排除。


如果你希望你的依赖在传递的时候也被排除,则必须写上完整的groupId和moduleId:

compile('com.alibaba:dubbo:2.4.10'){exclude groupId:'org.springframework',moduleId:'spring'}

为了避免出错,建议各位开发写排除依赖的时候都带上moduleId