0

ワークスペースに存在する各プロジェクトから複数の jar ファイルを作成する必要があるという要件があります。単一の build.xml を記述して複数の jar ファイルを作成する方法を教えてください。私は同様のコードを試し、その可能性を知っていますが、従う必要があるベストプラクティスは何かを知りたいです. 私の場合、ワークスペースに 5 つのプロジェクトがあり、5 つの異なる jar を作成する必要があります。また、jar ファイルをビルドするために一部のプロジェクトに含める必要がある外部依存関係 jar もあります。以下は、2 つの jar ファイルを作成するために作成したサンプル コードです。jarファイルを生成するために私が書いたコードは以下のとおりです

 <target name="compile" depends="compileVal, compileHib " description="compile the source for all">

</target>

<!-- ============================================= 
      target: compile the source for Valueobjects              
     ============================================= -->
<target name="compileVal" depends="clean" description="description">
    <echo message="Creating directory '${target}' if not present "></echo>
        <mkdir dir="${target}"/>
        <mkdir dir="${Classfiles}"/>
        <mkdir dir="${JarLocation}"/>
        <javac srcdir="../ValueObjects/src" destdir="${Classfiles}" />
</target>

    <!-- ================================= 
      target: compile              
     ================================= -->
    <target name="compileHib" depends="clean" description="description">
    <echo message="Creating directory '${target}' if not present "></echo>
        <mkdir dir="${target}"/>
        <mkdir dir="${Classfiles}"/>
        <mkdir dir="${JarLocation}"/>
        <javac srcdir="src" destdir="${Classfiles}" >
            <classpath>
                <pathelement location="${libloc}/hibernate3.jar"/>
                <pathelement location="${libloc}/hsqldb.jar"/>
                <pathelement location="${libloc}/jta.jar"/>
                <pathelement location="${libloc}/ojdbc5.jar"/>
                <pathelement location="${libloc}/commons-logging-1.1.1.jar"/>
                <pathelement location="${libloc}/postgresql-9.1-902.jdbc4.jar"/>
            </classpath>
        </javac>
     </target>

<!-- ================================= 
      target: name              
     ================================= -->
    <target name="copy-non-java-files" depends="" description="description">
        <copy todir="${Classfiles}" includeemptydirs="false">
                <fileset dir="src" excludes="**/*.java" />
        </copy>
    </target>

    <!-- ================================= 
      target: compress              
     ================================= -->
    <target name="build_jar" depends="buildValobj, buildHib" description="description">

    </target>

    <!-- ================================= 
      target: buildValobject jar             
     ================================= -->
<target name="buildValobj" depends="compileVal" description="creates the valueObject jar">
    <echo message="Creating the jar to Folder '${JarDest}'"> </echo>
        <jar destfile="${JarDest}/${RetValObName}" basedir="${Classfiles}" />
</target>

<!-- ================================= 
      target: buildHibjar               
     ================================= -->
<target name="buildHib" depends="compileHib, copy-non-java-files" description="description">
    <echo message="Creating the jar to Folder '${JarDest}'"> </echo>
        <jar destfile="${JarDest}/${RetHibName}" basedir="${Classfiles}" />
</target>



    <!-- ================================= 
      target: clean              
     ================================= -->

    <target name="clean">
        <echo message="Cleaning '${target}' folder"></echo>
        <delete includeemptydirs="true">
            <fileset dir="${target}" includes="**/*"/>
        </delete>
    </target>

上記のコードで直面している問題は、depends="clean" を指定しているにもかかわらず、Hib をコンパイルしようとしているときに発生します。きれいになりません。既存のファイルと移動された新しいファイルの両方を含む jar が作成されます。理由がわかりませんか? clean を指定しましたが、clean アクションが実行されないようです。上記で不足しているものを教えてください。

手伝ってください。前もって感謝します

4

0 に答える 0