我试图通过命令行覆盖Ant编译器属性,以便所有'javac'任务使用我指定的编译器.我遇到的问题是,为编译器设置自己的值的任何目标都会覆盖我在命令行中设置的目标.所以,即使我输入以下命令.
ant -Dbuild.compiler=mycompiler
Run Code Online (Sandbox Code Playgroud)
由于该编译器="现代"属性,具有以下内容的任何目标将使用现代编译器而不是mycompiler
<javac srcdir="."
destdir="${classes.dir}/core"
compiler="modern"
encoding="UTF-8">
<include name="org/**" />
<include name="com/**" />
<compilerarg line="${config.build.compilerarg}" />
</javac>
Run Code Online (Sandbox Code Playgroud)
有没有办法从命令行覆盖它,或者我编辑构建文件?
Ant javac任务文档说:
可以使用不同的编译器.这可以通过设置全局build.compiler属性来指定,该属性将影响整个构建中的所有任务,或者通过设置特定于当前任务的编译器属性来指定.build.compiler属性或编译器属性的有效值为:
这听起来就好像你可以任意指定全局build.compiler属性或设置一个特定的编译器的属性.
因此,您似乎需要修改构建文件,并且:
从javac调用中删除编译器属性,并允许全局build.compiler设置级联
将编译器属性的值从硬编码字符串 compiler ="modern"更改为属性 compiler ="$ {javac.compiler}"
| 归档时间: |
|
| 查看次数: |
10498 次 |
| 最近记录: |