NetRexxC

描述

在运行的 (Apache Ant) JVM 中编译 NetRexx 源代码树。

源代码目录和目标目录将被递归扫描以查找要编译的 NetRexx 源代码文件。只有没有对应类文件或类文件比 Java 文件旧的 NetRexx 文件才会被编译。

源代码树中的文件将被复制到目标目录,允许支持文件在类路径中正确定位。源代码文件被复制是因为 NetRexx 编译器无法通过参数在特定目录中生成类文件。

源代码树的目录结构应遵循包层次结构。

可以细化要编译/复制的文件集。这可以通过 includesincludesfileexcludesexcludesfiledefaultexcludes 属性来实现。使用 includesincludesfile 属性,您可以使用模式指定要包含的文件。excludeexcludesfile 属性用于指定要排除的文件。这也是通过模式完成的。最后,使用 defaultexcludes 属性,您可以指定是否要使用默认排除项。有关文件包含/排除的工作原理以及如何编写模式的信息,请参见有关 基于目录的任务 的部分。

此任务形成一个隐式 FileSet,并支持 <fileset> 的大多数属性(dir 变为 srcdir),以及嵌套的 <include><exclude><patternset> 元素。

classpathsrcdirdestDir 之外的所有属性也可以作为属性以 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 要排除的文件模式的逗号或空格分隔列表。 否;默认为默认排除项,如果 defaultexcludesno,则为无
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.getBytesaStringVar.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"/>