我試圖運行org.hibernate.tool.ant.EnversHibernateToolTask建議在rather terse guide to Envers(表的第二行,文檔有鏈接PDF)。這裏是我的Ant任務扭捏所以它成功地找到org.hibernate.tool.ant.EnversHibernateToolTask和org.hibernate.tool.ant.HibernateToolTask;現在它找不到org.apache.tools.ant.Task,並且我感覺我正在做錯事。試圖運行org.hibernate.tool.ant.EnversHibernateToolTask時遇到絆腳石嘉豪
<target name="schemaexport" depends="init"
description="Exports a generated schema to DB and file">
<taskdef name="hibernatetool"
classname="org.hibernate.tool.ant.EnversHibernateToolTask"
classpath=".;C:\appl\Java\jre6u13\lib\ext\envers-1.2.0.ga-hibernate-3.3.jar;C:\appl\Java\jre6u13\lib\ext\hibernate-tools.jar" />
<!--classpathref="${schema.classpath}"/>-->
<hibernatetool destdir=".">
<classpath>
<fileset refid="lib.hibernate" />
<path location="${build.dir}" />
</classpath>
<jpaconfiguration persistenceunit="ConsolePU" />
<hbm2ddl
drop="false"
create="true"
export="false"
outputfilename="versioning-ddl.sql"
delimiter=";"
format="true"/>
</hibernatetool>
</target>
我從來沒有做過自定義的ant任務,所以我可能會丟失一些非常簡單的東西。有什麼建議麼?我不知道要放什麼東西在hibernatetool任務的類路徑中,我找不到超過rudimentary javadoc任何文件。
編輯: OK,一些特定的Q的,試圖讓這個零碎...
- 這罐子
org.apache.tools.ant.Task
應該是在,爲什麼不能螞蟻找到它呢? - 哪裏都是關於如何使用HibernateToolTask的文檔? (我假設EnversHibernateToolTask應該工作一樣)
更新(2009-06-18):OK,我終於搞砸了我的勇氣,力圖使這方面的一些進展,並取得了一些進展。我可以得到它幾乎做兩兩件事的工作:
- 在命令行中運行
ant schemaexport
,而不是在Eclipse,運行我schemaexport
目標。 (螞蟻在Eclipse中似乎無法找到組織/阿帕奇/工具/螞蟻/任務,我不知道如何設置Eclipse中的類路徑螞蟻(從項目的taskdef類路徑不同;不知何故,我要告訴螞蟻使用類路徑中找到了自己該死的類時,它運行一個自定義的任務。這是瘋了....哎呀...) 確保我的類路徑中包含了所有授予在我JRE的堅持,我只是拿瓶
/lib/ext
目錄:- envers-1.2.0.ga-休眠-3.3.jar
- hibernate3.jar裏
- 休眠-tools.jar中
- SLF4J-log4j12-1.5.6.jar
- SLF4J-API-1.5.6.jar
- 的log4j-1.2.15.jar
現在,我得到了一個新問題:
BUILD FAILED C:\ DEKA \凸出\的java \測試數據庫\的build.xml:61:在創建JPA上 一個configurati 問題。你是否還記得添加 休眠的EntityManager罐子到 類路徑?
[[[[[尖叫]]]]]
更新看來我還需要
- 休眠-entitymanager.jar
- 休眠-annotations.jar
和我仍然得到classloader錯誤:
BUILD FAILED
java.lang.NoClassDefFoundError: javax/persistence/PersistenceException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at org.hibernate.tool.ant.JPAConfigurationTask.createConfiguration(JPACo
nfigurationTask.java:33)
at org.hibernate.tool.ant.ConfigurationTask.getConfiguration(Configurati
onTask.java:54)
我該如何運行這個w/o不得不使用J2EE服務器呢?!?!?!?!?!?我需要哪些其他JAR文件?我非常困惑和沮喪。
更新(2009-06-23):我最後得到了成功的構建。好像你需要:
* envers-1.2.0.ga-hibernate-3.3.jar
* hibernate3.jar
* hibernate-tools.jar
* slf4j-log4j12-1.5.6.jar
* slf4j-api-1.5.6.jar
* log4j-1.2.15.jar
* dom4j-1.6.1.jar
* hibernate-commons-annotations.ja
* a JAR containing JTA classes (Sun doesn't have a JAR file but you can download the [class files][3] yourself and make a JAR file out of it)
* a JAR containing JPA classes (I used toplink-essentials.jar from the glassfish project, per [this SO question][4])
* commons-logging-1.1.1.jar
* freemarker.jar
,並確保使用
<annotationconfiguration configurationfile="${some_path}/hibernate.cfg.xml"/>
代替<jpaconfiguration>
項目中包含的樣本Ant任務。它仍然無法正常工作,但我沒有收到envers表。 。:(
難道我的回答有幫助嗎? – danieljimenez 2009-06-12 05:14:32