【问题标题】:Does Android Maven apklib include its own SDK in the packaging?Android Maven apklib 是否在包装中包含自己的 SDK?
【发布时间】:2014-06-04 10:20:00
【问题描述】:

当我配置我的 apklib 时,我包括:

    <dependency>
        <groupId>android</groupId>
        <artifactId>android</artifactId>
        <version>4.0_r3</version>
        <scope>provided</scope>
    </dependency>

在依赖项列表中。如果我不这样做,它将无法识别编辑器中的源代码 并且不会编译。但是,我的问题是,Android SDK 是否会被包含在 使用 apklib 的项目?似乎是这样。然而,为什么会这样呢?我认为使用哪个 SDK 应该只由使用 apklib 的项目决定,而不是 apklib 本身(?)。当我在主项目中使用 api-level 14 时,我不想使用例如使用 api-level 19 的 apklib。

简而言之:apklib pom 中的 SDK 依赖项是否包含在主项目中(使用 Maven)?

【问题讨论】:

    标签: android maven sdk apklib


    【解决方案1】:

    我明白了。

    应该使用scope=provided 作为依赖项。

    然后,Maven 假定容器项目提供类,因此 SDK 类不会与 apklib 一起导入。

    【讨论】:

    • 你的意思是如果你把&lt;version&gt;4.0_r3&lt;/version&gt;和你的目标level 14,编译器不会编译sdk的所有类?您可以添加链接或参考,或任何使您得出此结论的内容吗?
    • 来自 Maven 文档:Scope=provided:这很像 compile,但表示您希望 JDK 或容器在运行时提供依赖项。例如,在为 Java Enterprise Edition 构建 Web 应用程序时,您可以将 Servlet API 和相关 Java EE API 的依赖设置为提供的范围,因为 Web 容器提供了这些类。此范围仅在编译和测试类路径上可用,并且不可传递。
    • 我相信,使用 scope=provided,apklib 本身会自行编译,但是当我从另一个主项目中将它(apklib)作为依赖项导入时,SDK 会类到 apklib将从该主项目而不是从 apklib 提供。这是我相信的,但我不是100%肯定。我用的时候好像是这样的。如果您发现其他情况,请发表评论,以便我更改答案。
    猜你喜欢
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2017-12-10
    • 2021-08-11
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多