是否可以使用ant修改源代码?

kgr*_*rad 0 java ant preprocessor conditional-compilation

我想在我的程序中进行条件编译.我知道如果你声明一个public static final boolean,编译器将忽略未遍历的分支.在构建程序之前,是否可以让ant目标更改变量?

例如,如果我有:

final public static boolean windows = false;

我想要两个蚂蚁目标:Windows和Mac.我希望命令 ant windows 将布尔值更改为true,同时 ant mac 保留变量.

谢谢.

Chr*_*ett 11

您可以让Ant修改属性文件,然后您可以非常轻松地在应用程序中读取此文件:)
new Properties(new FileInputStream("filename" / new File(filename)),

并使用:
Boolean isWindows = new Boolean(properties.getProperty("windows"))

或:读取属性
String os = properties.getProperty("os").

您可以使用Ant PropertyFile任务执行此操作:http://ant.apache.org/manual/Tasks/propertyfile.html.

编辑:如果您绝对必须使用Ant编辑源代码文件,则可以使用其他任务:

<replaceregexp file="blah.java" match="public static final boolean WINDOWS = \"(.*)\"" replace="public static final boolean WINDOWS = \"" + ${properties.windows} + "\"" />
- 根据需要将代码替换为您自己的代码.有关详细信息,请参见http://ant.apache.org/manual/Tasks/replaceregexp.html.