我使用enunciate(1.27)生成rest文档作为ant build(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
这是我的configfile(enunciate.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>
看起来enunciate任务是将版本1.5指定给javac,但我无法找到覆盖它的地方或方法。谁知道我做错了什么?
我正在使用enunciate来生成文档,而不是提供其他服务。
答案 0 :(得分:3)
从1.28 RC2开始,可以选择提供-source和-target配置参数:
<enunciate javacSourceVersion="1.7" javacTargetVersion="1.7" ...>
...
</enunciate>
答案 1 :(得分:0)
看过源代码后,org.codehaus.enunciate.main.Enunciate.java将源版本硬编码为1.5(至少在Enunciate版本1.27中)。我能看到的唯一解决方案是修改enunciate的源代码。