Datanucleus ANT增强无法找到我的类来增强

时间:2012-09-15 12:30:57

标签: ant datanucleus

我正在使用此功能,因为增强器插件无法处理CLASSPATH上的长Winodws个,因此使用该插件不是有效选项。

我的module.xml文件几乎是默认文件,但我只删除了对enhancecompile的{​​{1}}目标依赖项。我没有编译我的copy.metadata课程,因为:

  1. 我要包含很多库,如果我升级任何库,那就很头疼了。
  2. 我不需要因为eclipse实际上那样做
  3. 我删除了归档整个项目文件夹的部分,因为我只是在构建一个JAR。                   - >         

    .java

    我也有这个警告,无论我做什么都不会消失!

            <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>
    

    我的module.properties文件没有太大变化。我评论了<taskdef name="nucleusenhancer" classpathref="module.enhancer.classpath" classname="org.datanucleus.enhancer.tools.EnhancerTask" /> >>>E:\Projects\Core - Module\${module.lib.dir} does not exist. 建筑的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=**/* 包含2个文件夹,用于RDBMS的datanucleus主jar,而另一个文件夹包含datanucleus依赖项。我编译的类位于lib之下。

    输出结果如下:

    target

1 个答案:

答案 0 :(得分:1)

增强功能是对已编译类的实际修改。如果你没有先编译类,那么就没有什么可以增强它了。