如何使用 Ant 从中读取 project.properties 和库项目的所有路径



我试图阅读以下内容的project.properties。我已经使用了带有前缀的属性,但无法达到我的观点。

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

我只想获取字符串或列表[子模块/开关栏,子模块/开关栏,库/动作栏/库],并尝试将它们用于其他需求。

谢谢。

你可以写一个sinle属性,比如

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

并在您的构建中使用它.xml。

例如,可以使用<for><foreach>循环访问列表并对每个项执行代码。您可以直接在某些任务中使用它,因为它们本身支持这种"逗号分隔列表"(例如 include<zip>exclude)。

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

因此,您最好就您的问题发布更多内容:您的"其他要求"是什么?您将如何使用属性或"列表"?

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)

    <!-- 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" />   

相关内容

  • 没有找到相关文章

最新更新