0

我使用它是因为增强器插件无法处理 long CLASSPATHs onWinodws所以使用该插件不是一个有效的选项。

我的module.xml文件几乎是默认文件,但我只删除enhancecompilecopy.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下的文件夹包含 2 个文件夹,用于 RDBMS 的 datanucleus 主 jar,而另一个文件夹包含 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 回答