エンハンサー プラグインは長いCLASSPATH
s on を処理できなかったため、Winodws
これを使用しているため、プラグインの使用は有効なオプションではありません。
私のmodule.xml
ファイルはほぼデフォルトのファイルですが、enhance
ターゲットの依存関係をcompile
削除しただけcopy.metadata
です. .java
次の理由により、クラスをコンパイルしていません。
- 含めるライブラリがたくさんあり、ライブラリのセットをアップグレードすると頭痛の種になります。
- 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