[英]Android library project custom Ant build
我有一个图书馆项目,可以作为许多其他项目的后端。 它进行网络连接和解析等。然后,我在此基础上开发了其他前端项目。 对于开发和服务器环境,我编写了一个ANT构建脚本,该脚本替换了基于构建类型的代码中的某些值。 所以我有两个目标buildDev
和buildProd
。
在构建依赖项(非库项目)时,有没有办法让我正确设置值。 例如,如果我在项目上进行ant debug
,它将使用ant buildDev
构建后端,如果我进行ant release
,则将使用ant buildProd
进行后端ant debug
。
我很确定这是不可能的,那么还有哪些选择。
出于好奇,自定义构建仅替换具有静态变量的文件,该文件根据构建的类型分配了不同的值。 没什么复杂的。
在ant中,可以使用多种不同的任务来编辑文件中的属性。
我确定您知道属性文件,因此如果您在此处使用文档:
http://ant.apache.org/manual/index.html
它可能会帮助您。
如果您在ant样式的属性文件中设置变量,那么对于某些构建,您可以为单独的构建使用单独的文件,然后正确设置变量。
如果您要在源中设置变量,请尝试复制任务:
http://ant.apache.org/manual/index.html
复制任务上的过滤链将使您可以替换文件中的某些代码行。 因此,如果您有一个名为server_ip或类似名称的变量,则可以使用过滤链更改该值,然后将该源文件重新复制回您的树中。
我希望这回答了你的问题。 如果不是,请保持温柔。 我在回答问题上有点新手,在Android帖子上我被略微咀嚼了哈哈。
我找到了解决方案。 默认的Android Ant build.xml
在调用时将发布名称传递给子库项目脚本。 以下几行和后面的代码对其进行了详细说明。
<!-- figure out which target must be used to build the library projects.
If emma is enabled, then use 'instrument' otherwise, use 'debug' -->
<condition property="project.libraries.target" value="instrument" else="${build.target}">
<istrue value="${build.is.instrumented}" />
</condition>
然后,只需在所有相互依赖的项目中拥有相同的目标即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.