有时候,我不想添加所有依赖项,所以我需要从依赖项中排除一些,例如:
compile('com.google.http-client:google-http-client:1.20.0') {
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}
我在github here中找到了com.google.http-client源代码,但是,从源代码我无法找到哪个部分属于组" org.apache .httpcomponents "哪个部分属于' httpclient '
我是Gradle的初学者,所以任何人都可以解释如何识别群组和模块?
(例如stackoverflow问题here,有人发帖排除群组' ****',模块:' ****' ,但我想知道组和模块在哪里,所以将来我可以自己解决这个问题。)
答案 0 :(得分:3)
不是要将某些类或包从依赖项中排除,而是排除某些传递依赖项。组和模块是在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'
默认情况下,您只需排除要加载并添加到项目中的sone transitive依赖项。
在您的确切情况下,您可以查看项目的pom-file,它声明项目依赖关系如下:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${project.httpclient.version}</version>
</dependency>
此处,group
等于groupId
,module
等于artifactId
。你可以阅读它here。
如果您想了解项目中的传递依赖项,可以查看repository web page上的库描述页面,或者只需在命令行gradle dependencies
中调用即可打印出来项目的所有依赖项,包括传递依赖项。
答案 1 :(得分:1)
我倾向于使用grepcode。因此,对于您的示例,您可以在http://grepcode.com/snapshot/repo1.maven.org/maven2/com.google.http-client/google-http-client/1.20.0/浏览'com.google.http-client:google-http-client:1.20.0'
的依赖项。