1

I tried to read project.properties with following content. I've used property with prefix, but can not reach my point.

target=android-17
android.library.reference.1=submodules/Switchbar
android.library.reference.2=submodules/Volley
android.library.reference.3=libs/ActionBar/library 

I just wanna get string or list[submodules/Switchbar,submodules/Switchbar,libs/ActionBar/library], and try to use them for other requirements.

thank you.

4

2 回答 2

0

你可以写一个单一的属性,如

android.library.reference=submodules/Switchbar,submodules/Volley,libs/ActionBar/library

并在您的 build.xml 中使用它。

例如,您可以使用<for><foreach>遍历列表并在每个项目上执行代码。您可以在某些任务中直接使用它,因为它们本身就支持这种“逗号分隔列表”(例如includeexcludeof <zip>)。

如果您想保持当前的方式(使用相同的前缀编写多个属性),您可以使用<script>在您的 ant 构建文件中编写脚本来处理这些属性。您可以使用 ruby​​、python、Beanshell (Java)、groovy 等。您也可以使用这种方式来处理单个属性。

所以,你最好在你的问题上发布更多内容:你的“其他要求”是什么?您将如何使用属性或“列表”?

于 2013-09-09T10:14:21.227 回答
0

Android 的 ant 构建文件对此有一个预定义的任务:

<getlibpath projectPath="${any.path.to.android.project}" libraryFolderPathOut="full.project.library.path.list" />

它返回特定构建中涉及的所有库项目(包括 lib 项目的 lib 项目)。

之后可以使用

<import file="${sdk.dir}/tools/ant/build.xml"/>

它自动包含在初始构建脚本中(运行后android update project -p <path-to-android-project>

更准确地说,“${sdk.dir}/tools/ant/build.xml 的下一部分具有魔力(我将 getlibpath 这个 wa 直接包含在我的 build-scripty 中)

    <!-- jar file from where the tasks are loaded -->
    <path id="android.antlibs">
        <pathelement path="${sdk.dir}/tools/lib/ant-tasks.jar" />
    </path>

    <!-- Custom tasks -->
    <taskdef resource="anttasks.properties" classpathref="android.antlibs" />   
于 2013-11-13T08:39:42.547 回答