Ant类路径 - 由Hibernate创建的类无法导入其他包

时间:2013-12-04 17:13:55

标签: java hibernate ant classpath

我在新的软件包“实用程序”中定义了一个新的Clock单例。鉴于import语句

,我的大多数代码都可以按预期访问它
import com.mydomain.app.utility.*;

我有一些hbm2java从Hibernate映射生成的类,还包括从.hbm.xml文件中的标记插入的一些附加代码:

<meta attribute="class-code"><![CDATA[ .....

我生成的一些类需要访问新的Clock,所以我尝试将包导入生成的Java代码中:

<meta attribute="extra-import">com.mydomain.app.utility.*</meta>

import语句在java中按预期显示,但是ant会在javac阶段对它构建阻塞:

[javac] C:\Source\WebApp\hibernate\com\mydomain\data\app\Workflow.java:11: package com.mydomain.app.utility does not exist
[javac] import com.mydomain.app.utility.*;
[javac] ^

hibernate代码生成由hibernate目录中的构建文件完成,该目录是应用程序目录的兄弟:

 root
   app 
   hibernate
   others....

我是否可以在hibernate / build.xml的类路径中放置一些内容,允许生成的Java代码查看app / java / com.mydomain.app / utility / Clock.java中定义的Clock类?

或者我是否必须将Clock实用程序拆分为单独的.jar并首先编译它,所以我可以在hibernate / build.xml中指向它的.jar?

还是别的什么呢?

在这种情况下,最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

<project name="${project.title}" basedir="./" default="all">

    <property file="build.properties" />

    <property name="path.utilities" value="${path.deploy}/utilities" />
    <property name="path.classes" value="${path.deploy}/classes" />
    <property name="path.src" value="../src" />

    <path id="compile.classpath">
        <pathelement path="${path.utilities}" />
        <pathelement path="${path.classes}" />
        <pathelement path="${classpath}" />
    </path>

    <target name="compile">
        <javac target="1.5" source="1.5" srcdir="${path.src}" destdir="${path.classes}">
            <classpath refid="compile.classpath" />
        </javac>
    </target>

</project>

您可以添加build.xml的相关部分吗?