1

仕事での最初の任務は、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 つのエントリが必要です。

私は何か間違ったことをしていますか?

4

0 に答える 0