我在新的包“utility”中定义了一个新的 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>
导入语句在 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?
或者完全是别的东西?
在这种情况下最好的方法是什么?
最佳答案
这样的事情应该有效:
<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 中的相关部分吗?
关于java - Ant 类路径 - Hibernate 创建的类无法导入其他包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20381673/