我有一个需要Maven 2.2.1的项目(从AppFuse模板构建)。所以我升级到了这个(从2.1.0开始)并设置了我的路径以及我的M2_HOME
和MAVEN_HOME
env变量。
然后我运行mvn eclipse:eclipse
并将项目导入Eclipse(Galileo)。
但是,在项目的问题列表中(以及pom.xml GUI编辑器的顶部),它说:
无法构建项目 “/export/people/clegg/data/Workspace/funcserve/pom.xml; 它需要Maven版本2.2.1
我是否将Eclipse设置为使用其Embedded Maven实现,或者在Preferences - >中使用外部2.2.1安装。 Maven - >安装对话框。
我尝试关闭并重新打开项目,重新索引存储库,清理项目,重新启动IDE,注销并重新登录,我能想到的一切!但Eclipse仍然不相信我有Maven 2.2.1。
我刚做了一个插件更新,所以我有最新版本的Maven Integration for Eclipse - 0.9.8.200905041414。
有谁知道如何说服Eclipse我真的拥有合适版本的Maven?这就像它在其他地方记录了以前的版本,并且不会关注我的变化: - (
答案 0 :(得分:8)
Eclipse允许您指定外部Maven安装。但是有一个问题。 :( 看看Windows>偏好> Maven>安装。
您会看到如下消息:
Note: Embedded runtime is always used for dependency resolution, but does
not use global settings when it is used to launch Maven.
To learn more, visit the maven web page.
翻译为英语,这意味着Eclipse将继续使用其内部Maven实例来执行某些任务。 当你“运行为> maven install”时,它将使用你指定的外部Maven实例运行你的pom.xml脚本,但是当Eclipse执行它的一些内部工作时,它将继续使用嵌入式Maven实例,无论它是什么版本。
(编辑)的 据我所知,当您安装M2Eclipse时,您将隐式定义您将拥有的“内部Maven实例”,这正是插件打包的实例。 在插件配置中,您可以通过告知它们的安装位置来添加外部Maven实例。
答案 1 :(得分:3)
如果你使用的是最近的m2eclipse版本,你也可以试试这个:
<prerequisites>
<maven>>=2.2.1</maven>
</prerequisites>
请注意&gt; = 2.2.1 中的大于。它对我来说很好。
答案 2 :(得分:0)
常见的问题来源(此类问题)是您更改全局首选项并且不记得或知道您已启用某些项目特定设置。至少现在全局设置可以设置为使用外部maven,但项目设置仍然设置为“嵌入”。
答案 3 :(得分:0)
M2Eclipse使用嵌入式maven实例,而不是您在系统上安装的maven实例。
答案 4 :(得分:0)
您是否尝试过切换工作区?
您仍然可以在新工作区中引用同一项目。这将提供与日食内部设置相同的重置次数。
答案 5 :(得分:0)
尝试使用maven项目创建您的eclipse项目:m2eclipse或使用导入项目下的maven导入选项。
答案 6 :(得分:0)
使用m2eclipse,我在这些情况下的后备是做Maven&gt;更新依赖关系,然后更新Maven&gt;更新项目配置。第一个是我超级敏感,但第二个将重写.project和.classpath。
正如Pascal所说,m2eclipse也可以指向外部实例。我过去做过这个,但不是2.2.1。
丹
答案 7 :(得分:0)
我遇到了同样的问题。通过重新启动系统解决了这个问题,因为每次更改环境变量中的“路径”时,都应该重新启动系统,否则就不会选择更改。