仕事での最初の任務は、Rest API ドキュメントを生成するために enunciate ビルドを行うことです。Ant Build Tool を使用しています。xmbo というモジュールの 1 つに enunciate を適用しています。エラーが発生しました:
java.util.zip.ZipException: ビルド プロセス中に ZIP ファイルに少なくとも 1 つのエントリが必要です。
http://enunciate.codehaus.org/executables.html#antに従って、enunciate タスクの次のクラスパスを定義しました (オプションであるため、以下のコードで spring モジュールをコメントアウトしました)。
<path id="enunciate.base.classpath">
<fileset dir="${enunciate.home}/lib">
<include name="*.jar"/>
<exclude name="enunciate-jersey-1.28.jars"/>
<exclude name="enunciate-jersey-rt-1.28.jar"/>
<exclude name="enunciate-xml-1.28.jar"/>
<exclude name="enunciate-java-client-1.28.jar"/>
<exclude name="enunciate-jaxws-ri-1.28.jar"/>
<exclude name="enunciate-jaxws-support-1.28.jar"/>
<exclude name="enunciate-jaxws-support-1.28.jar"/>
</fileset>
<!--include (optional) spring module-->
<!--<fileset dir="${enunciate.home}/lib/modules/spring">-->
<!--<include name="*.jar"/>-->
<!--</fileset>-->
</path>
ターゲットを宣言:
<taskdef name="enunciate" classname="org.codehaus.enunciate.main.EnunciateTask">
<classpath refid="enunciate.base.classpath"/>
</taskdef>
<target name="generate_api_doc" depends="compile_xmbo">
<delete dir="${enunciate.src.dir}"/>
<mkdir dir="${enunciate.src.dir}"/>
<delete dir="${xmbo.build.dir}/stage/xmbo/webservices/war/docs"/>
<mkdir dir="${xmbo.build.dir}/stage/xmbo/webservices/war/docs"/>
<copy todir="${enunciate.src.dir}">
<fileset dir="${xmbo.src.dir}">
<include name="com/../webservice/**"/>
<include name="com/../wso/**"/>
<include name="com/../constants/**"/>
<exclude name="com/../**"/>
<exclude name="com/../**"/>
</fileset>
</copy>
<enunciate basedir="${enunciate.src.dir}" configFile="${config.dir}/properties/enunciate.xml">
<include name="**/*.java"/>
<exclude name="**/client/**,**/xdm/**"/>
<classpath refid="enunciate.full.classpath"/>
<export artifactId="docs" destination="${xmbo.build.dir}/stage/xmbo/webservices/war/docs"/>
<javacArgument argument="-g"/>
</enunciate>
</target>
(コピータスクの下に含めて除外します。このページでは完全な名前を指定していませんが、xmlファイルでは正しいです)。ターゲットの generate_api_doc は、「列挙」するために必要な jar をコンパイルおよび作成するターゲット compile_xmbo に依存します。
Enunciate.xml:
<?xml version="1.0" encoding="UTF-8"?>
<enunciate>
<api-classes>
<exclude pattern="**/xdm/**/*.java"/>
<exclude pattern="com.xactly.xdm.*"/>
<exclude pattern="com.xactly.xbpm.****"/>
</api-classes>
<deployment protocol="http" host="http://.../xmbo/xmbows" context="/api"/>
<webapp doCompile="false" doLibCopy="false"/>
</enunciate>
(ホストは当社のサーバーアドレスです)
コマンド ラインからモジュール ターゲット deploy_api_doc を呼び出してビルドを実行すると、java.util.zip.ZipException: ZIP ファイルには少なくとも 1 つのエントリが必要です。
私は何か間違ったことをしていますか?