Android库项目自定义Ant构建
我有一个库项目,作为许多其他项目的后端。它做网络连接和解析等。然后我有其他前端项目,建立在这个基础上。 对于开发和服务器环境,我编写了一个ANT构建脚本,它根据构建类型替换代码中的某些值。 所以我有两个目标Android库项目自定义Ant构建,android,ant,android-library,android-build,Android,Ant,Android Library,Android Build,我有一个库项目,作为许多其他项目的后端。它做网络连接和解析等。然后我有其他前端项目,建立在这个基础上。 对于开发和服务器环境,我编写了一个ANT构建脚本,它根据构建类型替换代码中的某些值。 所以我有两个目标buildDev和buildProd 在构建相关(非库项目)时,是否有方法正确设置值。例如,如果我对项目执行ant debug,它将使用ant buildDev构建后端,如果执行ant release它将使用ant buildProd进行构建 我很确定这是不可能的,那么有什么选择呢 出于好奇,
buildDev
和buildProd
在构建相关(非库项目)时,是否有方法正确设置值。例如,如果我对项目执行ant debug
,它将使用ant buildDev
构建后端,如果执行ant release
它将使用ant buildProd
进行构建
我很确定这是不可能的,那么有什么选择呢
出于好奇,自定义构建只是替换了一个文件,该文件包含根据构建类型分配不同值的静态变量。没有什么太复杂。在ant中,有各种不同的任务可用于编辑文件中的属性 我相信您知道属性文件,因此如果您使用此处的文档: 这可能对你有帮助 如果在ant样式的属性文件中设置变量,那么对于某些构建,可以为单独的构建设置单独的文件,从而正确设置变量 如果要在源代码中设置变量,请尝试复制任务: 复制任务上的筛选器链将允许您替换文件中的某些代码行。因此,如果您有一个名为server_ip或类似的变量,您可以使用filterchain来更改该值,并将源文件重新复制回树中
我希望这能回答你的问题。如果不是,就要温柔。我在回答问题方面有点生疏,我对安卓系统的帖子有点厌倦了。哈哈。我找到了解决办法。默认的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>
然后就是在所有相互依赖的项目中都有相同的目标。我在提出解决方案时找到了解决方案。谢谢你的帮助。