蚂蚁警告:“未设置'包含运行时间'”蚂蚁运行时其他详细信息

2022-08-31 04:38:23

我收到以下警告:

[javac] build.xml:9: warning: 'includeantruntime' was not set, 
defaulting to build.sysclasspath=last; set to false for repeatable builds

这是什么意思?


答案 1

蚂蚁运行时

只需设置:includeantruntime="false"

<javac includeantruntime="false" ...>...</javac>

如果您必须多次使用 -task,则可能需要考虑使用 PreSetDef 来定义自己的 -task,该任务始终设置 。javacjavacincludeantruntime="false"

其他详细信息

http://www.coderanch.com/t/503097/tools/warning-includeantruntime-was-not-set

这是由 Ant 1.8 中引入的一个错误功能引起的。只需将该名称的属性添加到javac任务中,将其设置为false,然后忘记它曾经发生过。

http://ant.apache.org/manual/Tasks/javac.html

是否在类路径中包含 Ant 运行时库;默认值为 yes,除非设置了 build.sysclasspath。通常最好将此值设置为 false,以便脚本的行为对运行脚本的环境不敏感。


答案 2

正如@Daniel Kutik所提到的,presetdef是一个不错的选择。特别是如果一个人正在处理一个包含许多文件的项目,而这些文件不能或不愿意编辑(例如,来自第三方的文件)。build.xml

要使用 ,请在顶级文件中添加以下行:presetdefbuild.xml

  <presetdef name="javac">
    <javac includeantruntime="false" />
  </presetdef>

现在,所有后续任务基本上都将继承 。如果您的项目确实需要 ant 运行时库,则可以将它们显式添加到构建文件中,或者将 .后者也将摆脱警告。javacincludeantruntime="false"includeantruntime="true"

如果需要,后续任务仍可以显式更改此设置,例如:javac

<javac destdir="out" includeantruntime="true">
  <src path="foo.java" />
  <src path="bar.java" />
</javac>

我建议不要使用.它有效,但它违背了警告的目的。该警告告诉人们,一个人的构建版本在另一个系统上的行为可能有所不同。使用使这种情况更有可能发生,因为现在每个系统都需要以相同的方式使用。此外,将在全球范围内应用,在您的所有项目中随意抑制警告ANT_OPTSANT_OPTSANT_OPTSANT_OPTS


推荐