有时,我不想添加所有的依赖项,因此我需要从依赖项中排除一些依赖项,例如:
compile('com.google.http-client:google-http-client:1.20.0') {
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}我在github 这里中找到了com.google.http-客户机源代码,但是从源代码中我找不到哪些部分属于组这里,哪些部分属于'httpclient‘
我是Gradle的初学者,所以谁能解释我如何识别组和模块?
(就像堆栈溢出问题这里一样,有人刚刚发布了排除组‘*’,模块:‘*’,但是我想知道组和模块在哪里,所以将来我可以自己解决这个问题。)
发布于 2017-03-16 06:53:38
它不是将某些类或包从依赖项中排除出来,而是排除一些传递依赖项。组和模块是在maven存储库中查找库的属性。因为你的依赖
com.google.http-client:google-http-client:1.20.0组为com.google.http-client,模块为google-http-client,版本为1.20.0。当你加入
exclude group: 'org.apache.httpcomponents', module: 'httpclient'默认情况下,您只需排除要加载并添加到项目中的一个传递依赖项。
在您的具体示例中,您可以查看项目的pom文件,它声明项目依赖关系如下:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${project.httpclient.version}</version>
</dependency>在这里,group等于groupId,module等于artifactId。你可以读到它,这里。
如果希望了解项目中哪些是传递依赖项,可以查看存储库网页上的库描述页,或者只需调用命令行gradle dependencies来打印项目的所有依赖项,包括传递依赖项。
发布于 2017-03-15 23:09:18
我倾向于使用grepcode。因此,对于您的示例,您可以在'com.google.http-client:google-http-client:1.20.0'的http://grepcode.com/snapshot/repo1.maven.org/maven2/com.google.http-client/google-http-client/1.20.0/上浏览它的依赖项。
https://stackoverflow.com/questions/42821902
复制相似问题