我有一个运行良好的项目,它使用 Maven 进行依赖管理。该项目本身由 eclipse 运行(Run As...
)。
在项目菜单 > 部署程序集
中,我包含了MAVEN_REPO
。
问题:当我运行项目时,所有内容都会正确复制到 war/WEB-INF/lib
。
但我不断收到无法找到 PersistenceProvider
的错误。
如果我手动将所有库从部署的 war 目录复制到 src/main/webapp/WEB-INF/lib
,然后重新启动应用程序,一切正常!
所以我可以得出结论,我的 jpa/hibernate 配置总体上是好的。
但是我怎样才能克服将所有库手动添加到 src lib 文件夹的需要呢?
最佳答案
因此,当您执行“Run As - Web Applicaiton”时,eclipse/google 插件将使用您指定的 War 目录路径。要更改此设置,请右键单击您的项目,然后选择属性。然后在 Google 下拉列表中选择“Web 应用程序”。在那里,您可以编辑“WAR 目录”路径。这可能设置为 src/main/webapp,这不是您想要的。
当maven构建你的war时,它会获取所有构建的类文件和库,并将它们打包到目标目录中。这是您要用作“War 目录”的目录。这将类似于“/target/myappname-1.0.0”
旁注:如果您使用 gwt/maven,您可能需要使用命令“mvn gwt:run”而不是使用 google/eclipse 插件运行。这允许 Maven 在开发服务器运行之前做一些工作(比如解析依赖关系)。
关于java - 为什么 Eclipse 不能导出类路径中包含的 Maven 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17279572/