我有一个图书馆项目,作为许多其他项目的后端。它进行Web连接和解析等。然后我有其他基于此的前端项目。
对于开发和服务器环境,我编写了一个ANT构建脚本,用于替换构建类型的代码库中的某些值。
所以我有两个目标buildDev
和buildProd
。
在构建依赖项(非库项目)时,有没有办法让我正确设置值。例如。如果我在项目上ant debug
,则使用ant buildDev
构建后端,如果我ant release
,则使用ant buildProd
进行构建。
我很确定这是不可能的,所以有什么选择。
对于好奇的人来说,自定义构建只是替换了一个文件,该文件具有静态变量,这些变量根据构建类型分配了不同的值。没什么太复杂的。
答案 0 :(得分:1)
在ant中,可以使用各种不同的任务来编辑文件中的属性。
我确定你知道属性文件,所以如果你使用这里的文档:
http://ant.apache.org/manual/index.html
它可能对你有帮助。
如果在ant样式属性文件中设置变量,那么对于某些构建,您可以为单独的构建提供单独的文件,然后正确设置变量。
如果您正在谈论在源中设置变量,请尝试复制任务:
http://ant.apache.org/manual/index.html
复制任务上的过滤链允许您从文件中替换某些代码行。因此,如果您有一个名为server_ip的变量或类似的变量,您可以使用过滤链来更改该值并将该源文件重新复制回树中。
我希望这能回答你的问题。如果没有,请保持温柔。我在回答这些问题时有点新鲜,而且我在Android帖子上略微被咀嚼了哈哈。
答案 1 :(得分:0)
我找到了解决方案。默认的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>
然后,这只是在所有相互依赖的项目中拥有相同目标的问题。