gpt4 book ai didi

ant - 覆盖 Ant javac 任务中的编译器属性

转载 作者:行者123 更新时间:2023-12-04 07:48:08 25 4
gpt4 key购买 nike

我正在尝试通过命令行覆盖 Ant 编译器属性,以便所有“javac”任务都使用我指定的编译器。
我遇到的问题是,任何为编译器设置自己值的目标都会覆盖我在命令行中设置的目标。所以,即使我输入了以下命令。

ant -Dbuild.compiler=mycompiler  

由于该 compiler="modern"属性,任何具有以下内容的目标都将使用现代编译器而不是 mycompiler
<javac srcdir="."  
destdir="${classes.dir}/core"
compiler="modern"
encoding="UTF-8">
<include name="org/**" />
<include name="com/**" />
<compilerarg line="${config.build.compilerarg}" />
</javac>

有什么方法可以从命令行覆盖它,还是我一直在编辑构建文件?

最佳答案

Ant javac task documentation说:

It is possible to use different compilers. This can be specified by either setting the global build.compiler property, which will affect all tasks throughout the build, or by setting the compiler attribute, specific to the current task. Valid values for either the build.compiler property or the compiler attribute are:



听起来好像可以 要么 指定全局 build.compiler 属性 设置特定的编译器属性。

因此,看起来您需要修改构建文件,并且:
  • 从 javac 调用中删除编译器属性并允许
    全局 build.compiler 设置为
    级联
  • 改变编译器的值
    来自硬编码字符串的属性
    编译器=“现代”成为属性(property)
    编译器="${javac.compiler}"
  • 关于ant - 覆盖 Ant javac 任务中的编译器属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/235363/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com