【问题标题】:Extra dependency in my android maven dependency tree我的 android maven 依赖树中的额外依赖
【发布时间】:2015-05-09 16:23:34
【问题描述】:

我想弄清楚为什么 maven 会添加这个依赖项:

 com.android.support:support-v4:jar:21.0.0:system

在我的依赖树中。它位于树的顶层,不在任何其他依赖项之下,这意味着我应该能够在 pom.xml 中找到它? 好吧,它不在那里,或者在我的项目中的任何其他地方。它也不存在于我的任何其他依赖项下作为传递依赖项。

跑步

mvn dependency:tree

启用调试只会给我这两条额外的线:

[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 dependencies android-support-library android-maven-plugin


【解决方案1】:

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

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

你有两个选择:

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

【讨论】:

    猜你喜欢
    • 2017-09-13
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 2017-07-17
    相关资源
    最近更新 更多