【问题标题】:Eclipse won't believe I have Maven 2.2.1Eclipse 不会相信我有 Maven 2.2.1
【发布时间】:2010-12-20 18:55:05
【问题描述】:

我有一个需要 Maven 2.2.1 的项目(从 AppFuse 模板构建)。所以我升级到这个(从 2.1.0 开始)并设置我的路径和我的 M2_HOMEMAVEN_HOME 环境变量。

然后我运行 mvn eclipse:eclipse 并将项目导入 Eclipse (Galileo)。

但是,在项目的问题列表中(以及 pom.xml GUI 编辑器的顶部)它说:

无法构建项目 '/export/people/clegg/data/Workspace/funcserve/pom.xml; 它需要 Maven 版本 2.2.1

无论我在 Preferences -> Maven -> Installations 对话框中将 Eclipse 设置为使用其 Embedded Maven 实现还是外部 2.2.1 安装,这种情况都会持续存在。

我尝试过关闭并重新打开项目、重新索引存储库、清理项目、重新启动 IDE、注销并重新登录,我能想到的一切!但是 Eclipse 仍然不会相信我有 Maven 2.2.1。

我刚刚更新了插件,所以我拥有最新版本的 Maven Integration for Eclipse -- 0.9.8.200905041414。

有谁知道如何让 Eclipse 我确实拥有正确版本的 Maven?就好像它在别的地方记录了以前的版本,不会关注我的变化:-(

【问题讨论】:

    标签: java eclipse maven-2


    【解决方案1】:

    如果您更改了全局首选项并且不记得或不知道您已启用某些项目特定设置,则常见的问题来源(此类)。至少现在有可能将全局设置设置为使用外部 maven,但项目设置仍设置为“嵌入式”。

    【讨论】:

    • 我的 Maven 项目设置页面不允许我设置 Maven 实例。
    【解决方案2】:

    M2Eclipse 使用嵌入式 maven 实例,而不是您在系统上安装的 maven 实例。

    【讨论】:

    • m2eclipse 可以使用嵌入式 maven 实例 OP 报告的“外部”maven 安装。
    • 如何确定嵌入式版本是什么?
    【解决方案3】:

    您是否尝试过切换工作区?

    您仍然可以在新工作区中引用同一个项目。就 Eclipse 内部设置而言,这将提供尽可能多的重置。

    【讨论】:

    • 遗憾的是,即使有了全新的工作空间,也会发生同样的事情。
    【解决方案4】:

    尝试使用 mvn project:m2eclipse 创建你的 eclipse 项目,或者使用 import project 下的 maven import 选项。

    【讨论】:

      【解决方案5】:

      使用 m2eclipse,我在这些情况下的回退是执行 Maven > 更新依赖项,然后执行 Maven > 更新项目配置。第一个只是我迷信,第二个会重写.project和.classpath。

      正如 Pascal 所说,m2eclipse 也可以指向外部实例。我过去做过,虽然不是在 2.2.1。

      【讨论】:

        【解决方案6】:

        Eclipse 允许您指定外部 Maven 安装。但有一个问题。 :( 看看 Windows > Preferences > Maven > Installations。

        你会看到这样的消息:

        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 实例。

        【讨论】:

        • 好的,现在说得通了。不幸的是,m2eclipse 的嵌入式实例还不支持 Maven 2.2.1 (m2eclipse.sonatype.org/project-faq.html#16),因为它总是使用 Maven 项目构建器的嵌入式版本 (m2eclipse.sonatype.org/project-faq.html#17),这意味着(可能)增量构建和自动构建在这些案例。 (也许可以使用自定义构建器来解决?)这是我没有足够仔细地阅读 m2eclipse FAQ 的情况,尽管重点(第二个链接)隐藏在一个不相关的问题中。谢谢!
        • PS 我已经在使用 Galileo(尽管路径中有 GanymedeWorkspace)和最新的 m2eclipse。将编辑问题以使这一点更清楚。
        【解决方案7】:

        如果您使用的是最新的 m2eclipse 版本,您也可以试试这个:

        <prerequisites>
            <maven>>=2.2.1</maven>
        </prerequisites>
        

        注意 >=2.2.1 中的大于。对我来说效果很好。

        【讨论】:

          【解决方案8】:

          我遇到了同样的问题。通过重新启动系统解决了这个问题,因为每次更改环境变量中的“路径”时,都应该重新启动系统,否则不会选择更改。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-05-12
            • 2013-02-26
            • 2011-02-12
            • 2023-04-01
            • 1970-01-01
            • 1970-01-01
            • 2011-10-19
            • 2012-04-22
            相关资源
            最近更新 更多