這讓我瘋狂,令我震驚的是,official documentation絕對是無用的。如何使用Ant + IntelliJ IDEA做OpenJPA增強
以下是我有:
- IntelliJ IDEA的11
- OpenJPA的2.1.1
的,因爲OpenJPA加入到使用的庫列表我已經有類路徑到OpenJPA它看起來像這
<path id="library.openjpa.classpath">
<fileset dir="${basedir}/lib/openjpa">
<patternset refid="library.patterns"/>
</fileset>
</path>
根據官方文件,我添加了以下目標
<target name="enhance">
<copy includeemptydirs="false" todir="${basedir}/lib/openjpa">
<fileset dir="src" excludes="**/*.launch, **/*.java"/>
</copy>
<taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask">
<classpath refid="library.openjpa.classpath"/>
</taskdef>
<openjpac>
<classpath refid="library.openjpa.classpath"/>
</openjpac>
</target>
這讓我異常
C:\工作\ PRJ \的build.xml:283:org.apache.openjpa.util.MetaDataException: MetaDataFactory無法配置 (CONF。 newMetaDataFactoryInstance()返回null)。這可能意味着 沒有找到配置屬性。確保您有一個 META-INF/persistence.xml文件,它在您的類路徑 中可用,或者您用於配置的屬性文件是 可用。如果您正在使用Ant,請參閱任務嵌套元素的或 屬性。 如果您的OpenJPA分發罐已損壞,也可能發生這種情況,如果您的安全策略過於嚴格,也會發生此問題 。
我Process Monitor測試,可以看到,它打開並讀取persistence.xml
。
有些人filed bug我有問題,他得到的答案是發現persistence.xml
不是問題的根源。
的問題是:
- 我能做些什麼,使工作?
- 我可以通過跳過
persistence.xml
的需求並僅指定要添加的.class文件的模式來工作嗎? - 這是更螞蟻的問題。如何讓OpenJPA增強器在
openjpa-2.1.1.jar
所在目錄以外的目錄中查找persistence.xml
?
您是否已驗證META-INF目錄是否在您的類路徑中? – Rick 2011-12-20 15:09:21
我不知道如何在Ant腳本中指定額外的classpath目錄。但爲了確保我將'persistence.xml'複製到OpenJPA的jar所在的目錄中。 – expert 2011-12-20 19:07:42