我试图弄清楚为什么 maven 要添加这个依赖项:
com.android.support:support-v4:jar:21.0.0:system
在我的依赖树中。它位于树的顶层,而不是在任何其他依赖项之下,这意味着我应该能够在 pom 中找到它.xml?好吧,它不在那里,也不在我的项目中的其他任何地方。在我的任何其他依赖项下,它也不作为传递依赖项存在。
运行
mvn dependency:tree
启用调试后只给了我这 2 行额外的行:
[DEBUG] testArtifact: artifact=com.android.support:support-v4:jar:21.0.0:system
[DEBUG] includeArtifact: artifact=com.android.support:support-v4:jar:21.0.0:system
有什么想法吗?
编辑:安卓插件是否有可能在我的依赖树中添加任何东西?
它不是来自android-maven-plugin(AMP),而是来自aar依赖项。AMP 知道如何处理"aar"。你的一个安卓库(aar)将support-v4库作为内部jar(换句话说,它包含在libs文件夹内的aar中)
运行 mvn 编译,mvn 的前几行将显示哪个库包含此 jar 的警告。
您有 2 个选择:
- 要求该库的生产者不要在 AAR 中提供 Support-v4,而是在 build.gradle/pom 中放置一个依赖项.xml
- 通过将 includeLibsJarsFromAar 标志设置为 false,切勿包含来自 aar 的任何内部 jar,但是当您自己包含 support-v4 lib 时,您将遇到问题,因为它包含内部 jar