我对此感到非常沮丧:
我正在使用maven项目,使用jdbc和eclipselink。 mvn install
按预期工作。直到我必须在persistence.xml中更改PW。当我执行mvn clean
之后mvn install
时,项目被破坏,错误的(旧)persistence.xml仍在使用中。在eclipse中我必须做maven -> update project
(使用m2e插件)并且mvn install
再次突然工作。
现在我的问题:在部署服务器上我使用命令行脚本,我发现m2e功能没有mvn XYZ
等效...
是否有一些等价物?
明确的情景:
我在eclipse中导入的maven项目中使用我的本地机器(osx / win7)进行开发。我有一个JPA持久性接口,它封装了通过eclipselink实现的数据库连接。我可以在本地进行部署(mvn install
),但在我运行mvn clean
之后,更改persistence.xml
mvn install
中的密码是不可能的。我只是在测试中得到classDefNotFound Persistor
,因为它静态初始化了EntityManager,它无法连接新persistence.xml
的原因 - 或者至少是我的看法,因为堆栈跟踪并不是真的有用。但是,在项目的eclipse中maven -> update project...
之后,mvn install
再次运行并且获取了新密码(测试运行!)。
当我想在远程机器(debian,命令行)上部署项目时,我无法“安装”拉出的项目,因为在我更改了persistence.xml中的密码以进行部署之后,它再次出现错误的persistence.xml或至少有一些缓存用过。 我希望能让它更清楚一点。
解: 确保persistence.xml放在src / main / resources / META-INF中而不是其他地方。 m2e从错误的地方捕获persistence.xml(在我的例子中,src / main / java / META-INF)。所以它基本上只是一个错误的项目结构。
答案 0 :(得分:4)
您似乎可以mvn eclipse:clean eclipse:eclipse
使用regenerate the eclipse project files - 希望对您进行排序。
答案 1 :(得分:1)
maven更新项目是不同的,因为它将生成Maven Dependencies类路径容器
mvn eclipse:eclipse生成一个Referenced Library Container。