有时,我不想添加所有依赖项,所以我需要从依赖项中排除一些,例如:
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 ,有人刚刚发布 exclude group '****',module:'****' ,但我想知道组和模块在哪里,所以在 future 我可以自己解决这个问题。)
最佳答案
这不是从依赖中排除某些类或包,而是排除一些传递依赖。 Group 和 module 是用于在 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-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
要打印出项目的所有依赖项,请包括传递依赖项。
关于Gradle 编译 : How to identify group and module from dependency?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42821902/