在运行的 (Apache Ant) JVM 中编译 NetRexx 源代码树。
源代码目录和目标目录将被递归扫描以查找要编译的 NetRexx 源代码文件。只有没有对应类文件或类文件比 Java 文件旧的 NetRexx 文件才会被编译。
源代码树中的文件将被复制到目标目录,允许支持文件在类路径中正确定位。源代码文件被复制是因为 NetRexx 编译器无法通过参数在特定目录中生成类文件。
源代码树的目录结构应遵循包层次结构。
可以细化要编译/复制的文件集。这可以通过 includes、includesfile、excludes、excludesfile 和 defaultexcludes 属性来实现。使用 includes 或 includesfile 属性,您可以使用模式指定要包含的文件。exclude 或 excludesfile 属性用于指定要排除的文件。这也是通过模式完成的。最后,使用 defaultexcludes 属性,您可以指定是否要使用默认排除项。有关文件包含/排除的工作原理以及如何编写模式的信息,请参见有关 基于目录的任务 的部分。
此任务形成一个隐式 FileSet,并支持 <fileset>
的大多数属性(dir 变为 srcdir),以及嵌套的 <include>
、<exclude>
和 <patternset>
元素。
除 classpath、srcdir 和 destDir 之外的所有属性也可以作为属性以 ant.netrexxc.attributename
的形式使用,例如:<property name="ant.netrexxc.verbose" value="noverbose"/>
或从命令行使用:
ant -Dant.netrexxc.verbose=noverbose ...
注意:此任务依赖于 Apache Ant 分发版中未包含的外部库。有关更多信息,请参见 库依赖项。
属性 | 描述 | 必需 |
---|---|---|
binary | 是否将文字视为 Java 二进制类型而不是 NetRexx 类型 | 否 |
classpath | 编译期间要使用的类路径 | 否 |
comments | 是否将注释传递到生成的 Java 源代码文件 | 否 |
compact | 错误消息是否以简洁或详细格式显示。 | 否;默认值为 true |
compile | NetRexx 编译器是否应该编译生成的 Java 代码 | 否 |
console | 消息是否应该显示在“控制台”上。请注意,此任务将依赖于默认值来过滤编译消息。 | 否 |
crossref | 是否生成变量交叉引用 | 否 |
decimal | 是否应将十进制算术用于 NetRexx 代码。将其设置为 off将报告十进制算术为错误,适用于性能关键型应用程序。 |
否 |
defaultexcludes | 是否应使用默认排除项(yes|no)。 |
否;默认为 yes |
destDir | 应将 NetRexx 源代码文件复制到其中并进行编译的目标目录 | 是 |
diag | 是否生成有关编译的诊断信息 | 否 |
excludes | 要排除的文件模式的逗号或空格分隔列表。 | 否;默认为默认排除项,如果 defaultexcludes 为 no,则为无 |
excludesfile | 文件名称。此文件的每一行都被视为一个排除模式 | 否 |
explicit | 变量是否必须在使用前显式声明 | 否 |
format | 生成的 Java 代码是否格式良好,还是保留为与 NetRexx 行号匹配以进行调用堆栈调试 | 否 |
includes | 要包含的文件模式的逗号或空格分隔列表。 | 否;默认为全部(**) |
includesfile | 文件名称。此文件的每一行都被视为一个包含模式 | 否 |
java | 是否生成生成的 Java 代码 | 否 |
keep | 设置编译后是否应保留生成的 Java 源代码文件。生成的将具有 .java.keep 的扩展名,不是 .java。使用 removeKeepExtension来更改它。 |
否 |
logo | 编译时是否显示编译器文本徽标 | 否 |
removeKeepExtension | 告诉在 compile=false模式下是否应删除尾部的 .keep,以便生成的 Java 源代码文件真正以 .java 结尾。这便于稍后使用 javadoc 工具。 |
否 |
replace | 编译时是否应替换生成的 .java 文件 | 否 |
savelog | 编译器消息是否将写入 NetRexxC.log 以及控制台 | 否 |
sourcedir | 告诉 NetRexx 编译器将类文件存储在与源代码文件相同的目录中。另一种选择是工作目录 | 否 |
srcDir | 设置在其中查找源 NetRexx 文件的目录 | 是 |
strictargs | 告诉 NetRexx 编译器方法调用始终需要括号,即使不需要参数,例如 aStringVar.getBytes 与 aStringVar.getBytes() |
否 |
strictassign | 告诉 NetRexx 编译器赋值必须在类型上完全匹配 | 否 |
strictcase | 指定 NetRexx 编译器是否应该区分大小写 | 否 |
strictimport | 类是否需要使用 import 语句显式导入 |
否;默认情况下,NetRexx 编译器将自动导入某些包 |
strictprops | 局部属性是否需要使用 this 显式限定 |
否 |
strictsignal | 编译器是否应该强制通过显式命名的类型捕获异常 | 否 |
symbols | 是否应将调试符号生成到类文件中 | 否 |
time | 要求 NetRexx 编译器将编译时间打印到控制台 | 否 |
trace | 打开或关闭跟踪并指示生成的跟踪输出 | 否 |
utf8 | 告诉 NetRexx 编译器源代码为 UTF8 | 否 |
verbose | 告诉是否应生成大量警告和错误消息 | 否 |
suppressMethodArgumentNotUsed | 告诉我们是否应该过滤掉 strictargs 模式下的 方法参数未使用消息。 |
否 |
suppressPrivatePropertyNotUsed | 告诉我们是否应该过滤掉 strictargs 模式下的 定义了私有属性,但未使用消息。 |
否 |
suppressVariableNotUsed | 告诉我们是否应该过滤掉 strictargs 模式下的 设置了变量但未使用消息。请谨慎使用此选项,因为它可能会隐藏错误! |
否 |
suppressExceptionNotSignalled | 告诉我们是否应该过滤掉 strictsignal 模式下的 声明了异常,但在方法中未发出信号消息。 |
否 |
suppressDeprecation | 告诉我们是否应该过滤掉编译器输出中的任何弃用消息 | 否 |
<netrexxc srcDir="/source/project" includes="vnr/util/*" destDir="/source/project/build" classpath="/source/project2/proj.jar" comments="true" crossref="false" replace="true" keep="true"/>