我的 android maven 依赖树中的额外依赖

Extra dependency in my android maven dependency tree

我想弄清楚为什么 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 是否有可能在我的依赖树中添加任何东西?

它不是来自 android-maven-plugin (AMP),而是来自 aar 依赖项。 AMP 知道如何处理 'aar'。 您的 android 库 (aar) 之一将 support-v4 库作为内部 jar(换句话说,它包含在 libs 文件夹内的 aar 中)

运行 mvn compile 和 mvn 的前几行将向您显示包含此 jar 的库的警告。

您有 2 个选择:

  • 要求该库的制作者不要在 aar 中提供 support-v4,而是在构建中添加依赖项。gradle/pom。xml
  • 永远不要通过将 includeLibsJarsFromAar 标志设置为 false 来包含来自 aar 的任何内部 jar,但是当你自己包含 support-v4 lib 时你会遇到问题,因为它包含内部 jar