当前位置: 首页 > 知识库问答 >
问题:

宣布自升级到Java 7以来Ant任务中断

苏墨竹
2023-03-14

我使用enunicate(1.27)生成rest文档,作为ant构建(1.9.2)的一部分,如下所示:

<enunciate basedir="${java.src.dir}" verbose="true" configfile="${basedir}/enunciate.xml" >
  <include name="**/*.java"/>
  <classpath refid="test.class.path"/>
  <export artifactId="docs" destination="${war.temp.enunciate.dir}"/>
</enunciate>

在我迁移到java 7之前,这一直工作得很好。从那以后,我得到了:

...
[enunciate] warning: [options] bootstrap class path not set in conjunction with -source 1.5
...
[enunciate]   (use -source 7 or higher to enable try-with-resources)
...

我尝试过使用javacArgument来指定java 7(使用-Source 7和-Source 1.7):

<enunciate basedir="${java.src.dir}" verbose="true" configfile="${basedir}/enunciate.xml" >
  <include name="**/*.java"/>
  <classpath refid="test.class.path"/>
  <export artifactId="docs" destination="${war.temp.enunciate.dir}"/>
  <javacArgument argument="-source 7"/>
</enunciate>

但是我得到以下错误:

invoking enunciate:compile step...
[enunciate] javac: invalid flag: -source 7
[enunciate] Usage: javac <options> <source files>
[enunciate] use -help for a list of possible options

这是我的配置文件(expertion . XML):

<?xml version="1.0"?>
<enunciate label="DocumentCrucible"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.27.xsd">
  <deployment host="example.com" context="service"/>
  <namespaces>
    <namespace id="service" uri="http://example.com/service"/>
    <namespace id="bean" uri="http://example.com/bean"/>
  </namespaces>
  <services>
    <rest defaultRestSubcontext="/rest"/>
    </services>
  <modules>
    <docs splashPackage="com.example.rest" title="REST API" copyright="www.example.com"
        css="enunciate.css">
    </docs>
    <java-client>
        <package-conversions>
            <convert from="com.example" to="com.example.client"/>
        </package-conversions>
    </java-client>
    <jersey disableWildcardServletError="true" disabled="true" ></jersey>
  </modules>
</enunciate>

看起来enuncicate任务正在将版本1.5指定给javac,但我找不到在哪里或如何覆盖它。有人知道我做错了什么吗?

我使用expertion来生成文档,而不是提供rest服务。

共有2个答案

屈昊天
2023-03-14

查看了源代码后,org.codehaus.enunciate.main.Enunciate.java将源代码版本硬编码为1.5(至少在En

禄光霁
2023-03-14

从1.28 RC2开始,有一个选项可以提供-Source和-目标配置参数:

<enunciate javacSourceVersion="1.7" javacTargetVersion="1.7"  ...>
  ...
</enunciate>

http://dist.codehaus.org/enunciate/enunciate-1.28-RC2.zip

 类似资料:
  • 在构建中使用自定义Ant任务 为了让你的构建可以自定义任务, 你可以使用 taskdef(通常更容易) 或者 typedef Ant 任务, 就像你在一个build.xml文件中一样. 然后,你可以参考内置 Ant 任务去定制 Ant 任务. 例 16.5.使用自定义 Ant 任务 build.gradle task check << { ant.taskdef(resource: 'ch

  • Ant Telnet任务用于提供双向面向文本的通信工具。这是一个网络协议。 默认情况下,Apache Ant不支持它。 因此,需要在中包含一个外部JAR 文件。 此任务主要用于自动执行telnet会话xml文件。 元素支持嵌套元素和以分别执行读/写操作。 属性 描述 必需 用于登录服务器的用户ID 是 登录服务器的密码 是 服务器名称/地址 否 远程telnet服务器的端口号 否 连接后发送一个c

  • 此任务用于从JUnit测试框架运行测试。 此任务依赖于默认情况下未包含在Apache Ant分发中的外部库。 和都需要运行此任务,因此将这些JAR放在位置:ANT_HOME/lib 。 元素在文件中用于实现此任务。 它还支持嵌套元素,它提供了类似路径的结构。 1. Apache Ant Junit任务属性 属性 描述 必需 打印测试用例的摘要 否 在单独的JVM中运行测试 否 控制着要分叉测试用例

  • Ant Zip任务用于创建zip文件。 属性用于引用创建zip文件的文件源,可以使用属性来排除压缩文件。 它创建一个隐式文件集并支持各种嵌套元素,包括,,和。 1. Apache Ant Zip任务属性 属性 描述 必需 要创建的zip文件的名称 否 压缩文件的目录 否 存储和压缩数据 否 用于zip文件中文件名的字符编码 否 仅用于存储文件条目 否 要包含的文件列表 否 必须排除的文件列表 否

  • Ant WAR(Web Archive)是Java Archive文件的扩展。 它由库,类等组成,存储在,文件夹中。 1. Apache Ant WAR属性 属性 描述 必需 要创建的WAR的名称 是 Servlet配置描述符 是 用于jar文件的目录 否 存储和压缩数据 否 它用于指定编码 否 仅存储文件 否 包括文件列表 否 排除文件列表 否 即使存在,也更新目标文件 否 2. Apache

  • 此任务用于将文件加载到属性中。 它适用于文件并提供属性。它使用默认编码当前区域设置,除非指定了其他区域。 它使用下面给出的各种属性。 1. Apache Ant LoadFile任务属性 属性 描述 必需 它用于指定源文件 否 保存文件的属性 否 设置文件的编码 否 是否停止构建失败 否 可以防止显示诊断消息 否 下面看看一些例子来了解它的功能。 1. Apache Ant LoadFile任务示