gradle的一个坑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gradle的一个坑相关的知识,希望对你有一定的参考价值。

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

本文出自 “wolf” 博客,请务必保留此出处http://huangwq.blog.51cto.com/10299403/1873446

以上是关于gradle的一个坑的主要内容,如果未能解决你的问题,请参考以下文章

Bruce Eckel教你如何爬出 Gradle 的“坑”?

gradle的一个坑

着急使用android studio打包时,坑b gradle一直卡在gradle download maven metadata?

着急使用android studio打包时,坑b gradle一直卡在gradle download maven metadata?

Gradle 引入本地定制 jar 包

gradle升级踩坑指南