[英]Persistence.xml file of EntityManagerFactory in a jar file
[英]Jar file name problems in persistence.xml
我們有一個maven構建,它創建一個ear文件,其中包含在其內部lib
文件夾中包含JPA實體的lib
。 ear文件有一個persistence.xml
,我們使用<jar-file>
標簽添加實體:
<persistence-unit name="some-id">
<jar-file>MyEntities-1.0.0-SNAPSHOT.jar</jar-file>
MyEntities
lib是使用單獨的maven項目構建的。
只要構建在本地完成,這就可以正常工作,我只使用mvn install
而不是部署到遠程快照存儲庫。 當我們開始部署到repo時,由於本地.m2
repo和遠程repo中的jar文件名不同,它失敗了:
mvn install
在本地存儲庫上創建名為MyEntities-1.0.0-SNAPSHOT.jar
的文件, mvn deploy
在遠程存儲庫上mvn deploy
名為MyEntities-1.0.0-20131212-145600-42.jar
的文件。
現在,如果在我上次本地構建和maven之后部署的人員尋找新的快照更新(基於策略或使用-U
標志),它會將遠程文件拉到本地倉庫,並將帶有THAT名稱的jar復制到耳朵,這會導致部署時出現JPA錯誤,因為無法找到實體(在persistence.xml中聲明了不同的jar文件)。
除了在組裝耳朵文件之前始終在本地構建之外,是否有解決該問題的方法?
這適用於我們的項目:
<persistence-unit name="foo">
<!-- property comes from root pom.xml -->
<jar-file>../lib/foo-${bar.version}.jar</jar-file>
<properties>
</properties>
</persistence-unit>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>META-INF/persistence.xml</include>
</includes>
</resource>
</resources>
</build>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.