我正在使用Ant构建我的Android应用程序,并希望在构建时在strings.xml中设置其中一个值。例如,我可以使用
<string name="app_name">MyApp-DEBUG</string>
使用调试版本,或者我可以使用
<string name="app_name">MyApp<string>
发布版本。这可能吗?
答案 0 :(得分:2)
Ant中有两个任务可以提供帮助:
首先是<replace>。你给它一个文件名,其中包含可以替换的参数,你给&lt; replace&gt;任务这些参数的值。它将文件替换为它们。我不喜欢这个任务,因为它用于替换受版本控制的东西,如果你不小心,你最终可能无意中更改文件。
的settings.xml<settings>
<properties>
<property name="server" value="@SERVER@"/>
</properties>'
</settings>
替换任务
<replace file="settings.xml">
<replacetoken token="@SERVER@" value="google.com"/>
</replace>
我见过很多版本控制存储库,其中被替换文件的修订版#3是使用替换参数的文件的意外签入(并且直到下一个版本时参数未被更改才实现) 。然后版本#4是版本#2的副本,其具有替换参数。接下来是错误的版本#5,然后是版本#6,它会恢复文件,然后一直打开。
我首选的方法是将文件复制到另一个目录,然后使用<filterset>/<filter>令牌在复制时更改文件:
<copy todir="${target.dir}"
file="settings.xml">
<filterset>
<filter token="SERVER" value="google"/>
</filterset>
</copy>
两者都可以使用属性文件,而不是指定单个令牌。 <copy>/<filterset>
对可以获取文件的文件集并立即替换一堆令牌。 (小心不要将它传递给二进制文件!)。
答案 1 :(得分:0)
尝试此代码,它适用于我
cmake_minimum_required(VERSION 3.9)
project(lab2)
set(CMAKE_CXX_STANDARD 11)
add_executable(lab2 main.cpp)