0

エンハンサー プラグインは長いCLASSPATHs on を処理できなかったため、Winodwsこれを使用しているため、プラグインの使用は有効なオプションではありません。

私のmodule.xmlファイルはほぼデフォルトのファイルですが、enhanceターゲットの依存関係をcompile削除しただけcopy.metadataです. .java次の理由により、クラスをコンパイルしていません。

  1. 含めるライブラリがたくさんあり、ライブラリのセットをアップグレードすると頭痛の種になります。
  2. Eclipseが実際にそれを行うので、私はする必要はありません

また、JAR をビルドしているだけなので、プロジェクト フォルダー全体をアーカイブする部分を削除しました。-->

        <echo message="==================================================================="/>
        <echo message="Enhancing the MODULE files"/>
        <echo message="==================================================================="/>

        <!-- the classpath to enhance -->
        <path id="module.enhancer.classpath">
            <pathelement location="${module.classes.dir}"/>
            <path refid="module.lib.classpath"/>
        </path>

        <!-- define the task enhancer -->
        <taskdef name="nucleusenhancer"
                 classpathref="module.enhancer.classpath"
                 classname="org.datanucleus.enhancer.tools.EnhancerTask" />

        <!-- enhance -->
        <nucleusenhancer classpathref="module.enhancer.classpath"/>

    </target>

    <!--
    ===================================================================
    TARGET : modulearchive
    ===================================================================
    -->
    <target name="modulearchive" depends="enhance">
        <mkdir dir="${module.archive.dist.dir}"/>
        <delete file="${module.archive.dist.dir}/${module.archive.dist.file}"/>
        <zip zipfile="${module.archive.dist.dir}/${module.archive.dist.file}">
            <zipfileset  dir="${module.classes.dir}"  prefix="" includes="**/*"/>
        </zip>
    </target>

また、何をしても消えないという警告が表示されます。

<taskdef name="nucleusenhancer"
                 classpathref="module.enhancer.classpath"
                 classname="org.datanucleus.enhancer.tools.EnhancerTask" />
>>>E:\Projects\Core - Module\${module.lib.dir} does not exist.

私の module.properties ファイルはあまり変更されていません。ビルド用のプロパティにコメントを付け、WARビルド用のプロパティをコメント解除しましたJAR

#######################################
# SAMPLE FOR JAR MODULE (commented out)
#######################################
module.dir=./
module.lib.dir=${module.dir}/lib/dn
module.lib2.dir=${module.dir}/lib/deps
module.classes.dir=${module.dir}/target/classes
module.src.java.dir=./src/main/java
module.build.debug=on
module.archive.dist.dir=dist
module.archive.dist.file=${name}.jar
module.archive.files=**/*

私のプロジェクトのフォルダーlibの下のフォルダーには、RDBMS の datanucleus メイン jar という 2 つのフォルダーがあり、もう一方のフォルダーには datanucleus の依存関係があります。私のコンパイル済みクラスは の下にありtargetます。

出力は単純に次のとおりです。

Buildfile: E:\Projects\Core - Module\build.xml

default:
        [echo] ===================================================================
        [echo] Welcome to the build.
        [echo] ===================================================================

enhance:
        [echo] ===================================================================
        [echo] Enhancing the MODULE files
        [echo] ===================================================================
[nucleusenhancer] log4j:WARN No appenders could be found for logger (DataNucleus.Enhancer).
[nucleusenhancer] log4j:WARN Please initialize the log4j system properly.
[nucleusenhancer] DataNucleus Enhancer (version 3.1.0.release) : Enhancement of classes
[nucleusenhancer] DataNucleus Enhancer completed and no classes were enhanced. Consult the log for full details

modulearchive:
         [zip] Building zip: E:\Projects\Core - Module\dist\my-module-name.jar

distribution:
        [echo] ===================================================================
        [echo] Module file ready at: dist/my-module-name.jar
        [echo] ===================================================================
BUILD SUCCESSFUL
Total time: 2 seconds
4

1 に答える 1

1

拡張は、コンパイルされたクラスに対する実際の変更です。最初にクラスをコンパイルしていない場合、強化するものは何もありません。

于 2012-10-26T00:28:14.860 に答える