我們有一個maven版本,可以創建一個ear文件,該文件包含內部lib
文件夾中帶有JPA實體的庫。耳文件有一個persistence.xml
,在這裏我們添加使用<jar-file>
標籤實體:persistence.xml中的Jar文件名問題
<persistence-unit name="some-id">
<jar-file>MyEntities-1.0.0-SNAPSHOT.jar</jar-file>
的MyEntities
LIB是建立一個獨立的Maven項目。
只要構建是在本地完成的,iaw,我只使用mvn install
並且不部署到遠程快照存儲庫,這工作正常。它失敗了,當我們開始部署,因爲在當地.m2
回購和遠程回購不同的jar文件名的回購:
mvn install
創建一個在本地回購命名MyEntities-1.0.0-SNAPSHOT.jar
文件,mvn deploy
對遠程倉庫命名MyEntities-1.0.0-20131212-145600-42.jar
文件。
現在,如果有人在我最後一次本地構建和maven之後部署了新的快照更新(基於策略或使用-U
標誌),它會將遠程文件拖到本地回購站,並將具有該名稱的jar複製到耳朵,這會在部署時導致JPA錯誤,因爲無法找到實體(在persistence.xml中聲明瞭不同的jar文件)。
除了在組裝ear文件之前始終在本地構建外,是否有解決該問題的方法?
我認爲你應該檢查部署 - 插件的文件...請參見本http://maven.apache.org/插件/ maven-deploy-plugin/usage.html並搜索-Dfile參數。 –
不喜歡這種方法,因爲它改變了部署的快照構件的命名約定。另外,當碰撞版本號或釋放時我會遇到麻煩 - 因爲現在我會在部署插件的參數中設置版本號。 –
只是猜測:如果你在'部署'之前做了'清潔',你還會遇到同樣的問題嗎? –