У нас есть сборка maven, которая создает файл уха, который включает библиотеки с объектами JPA во внутренней папке lib
. Файл ухо имеет одну persistence.xml
, где мы добавим объекты, используя <jar-file>
тег:Проблемы с именем файла Jar в persistence.xml
<persistence-unit name="some-id">
<jar-file>MyEntities-1.0.0-SNAPSHOT.jar</jar-file>
MyEntities
Lib построен с отдельным проектом Maven.
Это прекрасно работает, пока сборка выполняется локально, iaw, я использую только mvn install
и не разворачиваю ее в удаленный репозиторий снимков. Он терпит неудачу, когда мы начинаем развертывание в репо из-за различных имен файлов JAR в локальном .m2
репо и удаленный репозиторий:
mvn install
создает файл с именем MyEntities-1.0.0-SNAPSHOT.jar
на локальном репо, mvn deploy
файл с именем MyEntities-1.0.0-20131212-145600-42.jar
на удаленном хранилище ,
Теперь, если кто-то развернулся после моей последней локальной сборки и maven ищет новые обновления моментальных снимков (на основе политики или с флагом -U
), он вытаскивает удаленный файл в локальное репо, а банка с именем THAT копируется на ухо , что вызывает ошибки JPA во время развертывания, поскольку сущности не могут быть найдены (другой файл jar, объявленный в файле persistence.xml).
Есть ли решение этой проблемы, кроме того, что вы всегда строите локально, прежде чем собирать файл уха?
Я думаю, вы должны проверить документацию развертывания-плагин ... Посмотрите этот http://maven.apache.org/ plugins/maven-deploy-plugin/usage.html и поиск параметра -Dfile. –
Не нравится этот подход, поскольку он изменяет соглашение об именах развернутых артефактов моментальных снимков. Плюс я столкнулся с проблемами при столкновении номеров версий или выпуске, потому что теперь у меня будет номер версии, заданный параметрами плагина развертывания. –
Просто спекулировать: у вас по-прежнему есть такая же проблема, если вы делаете чистку amvn перед развертыванием amvn? –