我收到以下警告:
[javac] build.xml:9: warning: 'includeantruntime' was not set,
defaulting to build.sysclasspath=last; set to false for repeatable builds
这是什么意思?
只需设置:includeantruntime="false"
<javac includeantruntime="false" ...>...</javac>
如果必须多次使用 -task,则可能需要考虑使用 来定义自己的始终设置 的 -task 。javac
PreSetDef
javac
includeantruntime="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,以便脚本的行为对运行
环境不
敏感。
正如@Daniel Kutik提到的,这是一个不错的选择。特别是如果一个人正在处理一个包含许多文件的项目,而这些文件不能或不想编辑(例如,来自第三方的文件)。presetdef
build.xml
要使用 ,请在顶级文件中添加以下行:presetdef
build.xml
<presetdef name="javac">
<javac includeantruntime="false" />
</presetdef>
现在所有后续任务基本上都将继承.如果您的项目确实需要 ant 运行时库,则可以将它们显式添加到构建文件中或设置 .后者也将摆脱警告。javac
includeantruntime="false"
includeantruntime="true"
如果需要,后续任务仍然可以显式更改此设置,例如:javac
<javac destdir="out" includeantruntime="true">
<src path="foo.java" />
<src path="bar.java" />
</javac>
我建议不要使用 .它有效,但它违背了警告的目的。该警告告诉人们,一个人的构建在另一个系统上的行为可能有所不同。使用使这更有可能,因为现在每个系统都需要以相同的方式使用。此外,将在全球范围内应用,在您的所有项目中任意抑制警告ANT_OPTS
ANT_OPTS
ANT_OPTS
ANT_OPTS
Chet Hosey在这里写了一个很好的解释:
从历史上看,Ant 总是在提供给 javac 任务的类路径中包含自己的运行时。因此,无论您喜欢与否,Ant 附带的任何库以及 ant 可用的任何库都会自动在构建的类路径中。
人们决定这可能不是大多数人想要的。所以现在有一个选择。
如果选择“true”(表示包含运行时),那么至少您知道构建类路径将包含 Ant 运行时。如果您选择“false”,那么您正在接受这样一个事实,即构建行为将在旧版本和 1.8+ 之间发生变化。
尽管您看到此警告很恼火,但如果您的构建完全损坏,您将更不高兴。保留此缺省行为允许未修改的构建文件在 Ant 版本之间一致地工作。
模板简介:该模板名称为【 Java 中 ant 警告:“未设置’includeantruntime’ ”】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Java】栏目查找您需要的精美模板。