【问题标题】:How to overcome jar dependency hell when multiple modules use the same jar?当多个模块使用同一个jar时如何克服jar依赖地狱?
【发布时间】:2012-09-21 21:50:57
【问题描述】:

我有一个包含多个模块的 Android 项目。这些都是 Git 子模块,其中有几个是用相同的 jar 打包的(android support v4、Guice、Roboguice 等)。我的主项目也有这些相同的依赖项,所以我有这些 jar 的三个副本,一个在我的项目中,一个在两个子模块中的每一个中。

当我构建时,它在 dex 阶段失败,抱怨已经添加了某些类。我可以解决这个问题,通过从所有模块中删除 jars,除了一个,然后将依赖项指向那个位置,但感觉很脏。一定有更好的方法。有什么建议吗?

【问题讨论】:

    标签: java android build jar intellij-idea


    【解决方案1】:

    使用 Maven 或 Ivy 等构建工具来为您管理依赖项,因此您不必将 JAR 签入到您的项目中。

    【讨论】:

    • 不知道为什么有人dv'ed这个。这个问题的答案是“Maven”。
    • @djechlin 可能是那个毛茸茸的家伙也尖叫了起来,因为他通过并阅读了有关 Maven 的信息?
    【解决方案2】:

    您在使用 Eclipse ADT 吗?如果是这样,这个问题已经用最新的 ADT 解决了。旧的曾经有你描述的问题,但新的应该可以工作。 查看此链接了解详细信息: http://tools.android.com/recent/dealingwithdependenciesinandroidprojects

    【讨论】:

    • 抱歉,我认为 IntelliJ 在当前版本中不支持该功能。最好的办法是按照 Matt 的建议使用外部构建工具(如 Maven)
    • 我一直使用 Ant 作为我的外部构建工具。这是使用 Ant 设置的固有问题吗?
    • 我不相信 Ant 现在支持这一点。您可以尝试的一件事是创建一个包含 jar 的新库项目,并从其他项目中引用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多