【问题标题】:What's the simplest way to manage dependencies in Android app repositories?在 Android 应用程序存储库中管理依赖项的最简单方法是什么?
【发布时间】:2013-02-19 11:54:11
【问题描述】:

我想制作一个依赖于其他 3rd 方库的 Android 应用程序,即ActionBarSherlock,并使用 Git 在源代码控制中跟踪应用程序的开发。我还想让其他开发人员更容易地帮助我开发应用程序。开发人员应该能够通过一两个简单的步骤构建应用程序。

我想在尽可能简单的环境中开发应用程序。我尝试使用Android Maven Plugin,并尝试在 Eclipse 中设置 Maven 集成。我发现这个过程非常不直观且不必要地复杂。

是否可以使用 Git 子模块管理项目依赖项,并使用一个非常简单的构建系统(可能基于 Ant)来链接任何依赖项、调试、安装和签名/部署 .apk

理想情况下,我想做如下的事情:

$ git clone git@github.com:me/myapp.git # clone the repo
$ cd myapp # enter the app directory
$ git submodule init && git submodule update # initialize dependencies
$ ant debug install # build & run app

此外,我希望能够在 IDE 中开发应用程序。 IDE 应该具有智能感知和自动完成功能(Vim 可以工作,但我喜欢类似于 Eclipse 如何自动添加在创建派生类时必须重写的方法)。从 IDE 构建和运行应用程序只需执行适当的 Ant 命令。

实现上述设置的最简单方法是什么?即:

  1. 作为子模块(或类似模块)管理的依赖项
  2. 简单的构建工具
  3. IDE 与构建工具和自动完成/智能感知集成

【问题讨论】:

    标签: android eclipse maven ant


    【解决方案1】:

    我认为管理依赖项最简单的方法是 Android SDK 提供的默认方法。我同意 Maven 非常不直观且不必要地复杂。此外,Android 团队并未正式支持 Maven。

    您只需要像 Git 或 Mercurial 这样的优秀 VCS。

    • 将所有*.jar文件放入子文件夹/libs;
    • 在 Eclipse 中,右键单击项目然后选择 Refresh;

    要使用命令行以release 模式部署APK,您只需要一个ant.properties 即可:

    key.store=/path-to-key-store
    key.alias=alias-name
    key.store.password=password
    key.alias.password=alias-password
    

    还有:

    $ ant clean release
    

    或者,

    $ ant clean release install
    


    编辑

    抱歉,我忘记了 Git 子模块。我以前从未使用过 Git,但只是阅读了some info here。我认为子模块就像带有源代码的子项目。如果是这样,事情也很容易。例如,您有一个宿主项目A 和一个子项目B(这是一个库):

    A
    |__ submodules
        |__ B
    

    要包含库 B,请打开 A/project.properties 并添加以下行:

    android.library.reference.1=submodules/B
    

    或者您可以让 Eclipse 管理它,方法是右键单击 A,选择 Properties,选择 Android 选项卡,然后将 B 添加到 Library 盒子。

    【讨论】:

    • .jar 文件添加到项目本身意味着它们被Git 跟踪。此外,它们不会像子模块那样容易更新,子模块可以通过检查所需的 SHA 来更新。话虽如此,让 Eclipse 管理类路径似乎是最简单的解决方案。如果在接下来的几天内没有更好的答案,我会将此标记为正确。
    • @modocache 谢谢。我很抱歉忘记了 Git 子模块。我编辑了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    相关资源
    最近更新 更多