【问题标题】:Ant-Android Application - how can i include a non-android project?Ant-Android 应用程序 - 我如何包含非 android 项目?
【发布时间】:2012-12-05 15:00:46
【问题描述】:

我在使用 ant、jenkins 和 android 时遇到了一些问题。我已经关注了这个tutorial 并且效果很好!但现在我有一个小问题......我的 android-project 需要导入另一个项目,这不是一个 android 项目,所以没有Androidmanifest.xml

当我尝试在控制台中编写以下行时:

android update project -p othernonandroidproject

我收到错误消息:othernonandroidproject 不是有效项目

有人可以帮助我吗?这很重要:(

【问题讨论】:

    标签: android ant jenkins continuous-integration build-automation


    【解决方案1】:

    您是否尝试将您的第三方项目制作成一个 jar 并将其放在您的 android 项目的lib 目录中?

    更新:

    你的命令示例是错误的,你的意思可能是

    android update project -p ./ -l relative_path/to_an/android_lib_project

    但是,它不适合您的需求,因为您需要导入第三方/非 android-specific java 支持库。

    要在你的 ant 构建过程中使用那种支持包,你只需要将库 jar 放到 lib 目录中,它就会被构建过程自动考虑在内。从您的 cmets 中,我推断出真正的问题是:如何双重管理 WIP 第三方库以持续集成 android 项目?对?然后你应该更新你的问题以反映这一点。不要忘记答案的质量将与问题的质量直接相关(因此我承认我的答案质量低下)。

    现在,我从未使用过 jenkins,但我的理解是它在构建过程中依赖于 ant ⇛ 去寻找 ant 目标。如果你将 CI 应用到你的 android 包和你的支持包,你可以在你的项目上创建推/拉目标:支持包上的 ant 推送目标,以提供支持包的最新成功构建结果 jar 和 ant -pre - 在你的 android 项目上编译 pull 目标。

    如果您不对您的支持包执行 CI,那么只需将标记版本推送到您的 android 项目的 vcs 或将其作为 -pre-compile 目标即时编译...

    您可以使用 -pre-compile ant 目标(复制文件)注入裸 .java 文件,但我不确定这是否是一个好的解决方案。

    【讨论】:

    • 嘿,感谢您的快速回复。我还没有尝试过,因为其他一些人仍在这个共同项目中开发。它只是一个项目,存储了android-client和server所需的所有通用类。
    • 如果第三方项目包含任何与 android 相关的公共定义,您应该创建一个 android lib-project (android create lib-project + android update project_that_depends_on_the_lib_project) 否则只需打包该项目并通过推送来使用它jar 到 lib…
    • 您好,谢谢您的回复。这个通用包目前正在开发中,所以我别无选择,每次发生变化时都创建一个 jar :( - 还有其他解决方案吗?
    • 您可以在您的 ant build.xml 文件中添加一个自定义目标来构建依赖项并将生成的 jar 注入到本地 lib 目录中。您必须将构建过程链接为
    • 好的,我可以试试这个;),但我认为它不能解决我的其他问题:我们使用 ant 只是为了 jenkins 构建自动化,对于我们自己,我们只是通过 eclipse 进行调试并且没有蚂蚁。所以我也必须在 Eclipse 中运行它...... :( 好吧,我可以制作一个 jar 并导入它,但我发现它非常复杂......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2015-12-13
    • 1970-01-01
    • 2012-07-08
    • 2012-11-26
    • 2013-12-25
    • 1970-01-01
    相关资源
    最近更新 更多