Ответ 1
Похоже, вы можете использовать mvn eclipse:clean eclipse:eclipse
для регенерировать файлы проекта eclipse - надеюсь, что это вас сортирует.
Я очень разочаровываюсь в этом:
Я использую проект maven, используя jdbc с eclipselink. mvn install
работает по назначению. Пока мне не придется менять PW в файле persitence.xml. Когда я делаю mvn clean
, а затем mvn install
, проект разбит, а неправильный (старый) persitence.xml все еще используется. В eclipse я должен сделать maven -> update project
(с использованием m2e addon), а mvn install
снова работает снова.
Теперь моя проблема: на сервере развертывания я использую скрипты командной строки, и я не нашел эквивалента mvn XYZ
для функции m2e...
Есть ли какой-то эквивалент?
Явный сценарий:
Я разрабатываю свою локальную maschine (osx/win7) в проекте maven, импортированном в eclipse. У меня есть интерфейс JPA Persistence, который инкапсулирует соединение с базой данных, которое реализуется через eclipselink. Я могу развернуть локально (mvn install
), но после запуска mvn clean
и изменения пароля в persitence.xml
mvn install
больше не возможно. Я просто получаю classDefNotFound Persitor
в тестах, потому что он статично инициализирует EntityManager, который не может подключить причину нового persitence.xml
- или, по крайней мере, мое мнение, потому что stacktrace не очень помогает. Но после maven -> update project...
в eclipse в проекте mvn install
снова работает, и новый пароль берется (тесты выполняются!).
Когда я хочу развернуть проект на удаленной машине (debian, commandline), я не могу запустить установку, вытащить проект, потому что после того, как я изменил пароль в persitence.xml для развертывания, снова это неверный persitence.xml или по крайней мере, некоторые кэшированные. Надеюсь, что это станет более понятным.
РЕШЕНИЕ: Убедитесь, что persitence.xml помещен в src/main/resources/META-INF, а не в другом месте. m2e улавливает persitence.xml из неправильных мест (в моем случае src/main/java/META-INF). Так что это была просто неправильная структура проекта.
Похоже, вы можете использовать mvn eclipse:clean eclipse:eclipse
для регенерировать файлы проекта eclipse - надеюсь, что это вас сортирует.
Проект обновления maven из eclipse отличается тем, что он создаст контейнер пути класса Maven Dependencies
mvn eclipse: eclipse создает контейнер ссылочной библиотеки.