【问题标题】:Maven Clean, Update, Install and Eclipse Clean, Refresh, Build -- a generally correct order?Maven 清理、更新、安装和 Eclipse 清理、刷新、构建——通常正确的顺序?
【发布时间】:2016-01-22 02:38:18
【问题描述】:

我有几个相互依赖的 Eclipse 项目。当我尝试构建我的工作区时,我遇到了多个问题。假设,如果我执行 Maven clean、update、install 和 Project clean、refresh、build all(我在 Eclipse 中通过相应的 Run 和 Project 菜单执行所有操作),问题应该会解决。

但是,我很困惑执行这些操作的最佳顺序是什么?此外,任何人都可以简要解释他们每个人的作用,以便我可以更好地理解并在我可以跳过一些时理解吗?

更具体地说:有人告诉我,运行 Maven Clean & Maven Install 就足够了。尽管 Maven 安装以“构建成功”结束,但在尝试运行特定项目中的某些类时,“问题”选项卡上仍然出现错误,并且出现“无法找到或加载主类导出”的严重错误。我尝试运行 Project Clean 几次,然后再运行 Project Build 几次,错误可能会也可能不会。有人建议我介绍 Maven 更新 -> 所有项目并选择所有项目 > 刷新 (F5) 步骤,但我不确定何时执行它们(在清理或安装或构建之后)。

对于如何执行这些操作,是否有任何“通常正确”的顺序?因此,如果我执行它并且仍然存在一些错误,那么很明显我的版本中出现了问题,而不仅仅是依赖关系?我已经从 RTC(软件开发团队协作工具)中提取了项目,我的同事没有这些问题。不过,我最近才拔掉它。

【问题讨论】:

    标签: java eclipse maven build rtc


    【解决方案1】:

    首先,你必须明白 maven 和 eclipse 是两个不同的东西。是的,有一个 m2e 插件(现在捆绑在 eclipse 中)在基于 maven 项目配置 eclipse 项目方面做得非常好。但是,有时 eclipse 会搞砸(几乎总是因为刷新问题)。

    其次,你可能要了解Maven Build Lifecycle Basics

    有三个内置的构建生命周期:默认、干净和站点。默认生命周期处理您的项目部署,clean 生命周期处理项目清理,而站点生命周期处理项目站点文档的创建。

    所以,基本上:

    • clean 是 clean 生命周期的一个阶段,会删除您的目标目录
    • install 是默认生命周期的一个阶段,它会做很多事情,因为会触发之前的所有阶段(生成源代码、编译、运行测试等,最后将你的包放入目标目录并放入本地存储库中的工件。

    第三,关于日食。如果您已选中“Project -> Build Automatically”选项,则不必运行 Build。当eclipse搞砸了,我发现执行m2e命令“Maven -> Update project”然后一个Refresh,就够了。此命令会重新生成 .settings 文件夹中的一些文件。在极少数情况下,我不得不自己删除 .settings 文件夹中的所有文件,然后运行“更新项目”命令。

    结论:mvn clean install 应该可以完成这项工作,如果不是 eclipse -> Refresh,如果仍然无法正常工作 eclipse -> Maven -> Update Project

    我还建议使用最新版本的 eclipse 和 m2e 插件。

    【讨论】:

    • 同意,但如果它是一个基于 maven 的项目(依赖项取自 mvn repo),我们需要使用 mvn install,因为它会下载 pom 中提到的所有依赖项,但如果所有依赖项都可用然后 eclipse clean -> build 也可以工作。
    • mvn clean install和eclipse有什么区别=>maven=>更新项目
    【解决方案2】:

    特别是在我的情况下,以下操作序列有效:

    • 项目 -> 取消选中自动构建
    • [接受传入的更改]如果适用
    • 项目->清理
    • 运行 -> 运行方式 -> Maven clean
    • 运行 -> 运行方式 -> Maven 安装
    • 项目 -> 自动检查构建
    • 如果问题选项卡上出现错误:
      • 选择所有项目,刷新F5
      • 如果仍然有错误:
        • 在Problems选项卡上手动删除错误(可能是Eclipse没有更新依赖等)
        • 选择所有项目,刷新F5

    【讨论】:

    • 至于Project -> Clean 步骤,我可以看到(在Eclipse Neon 中)它的对话框有一个选项(一个复选框)Start a build automatically 有两个子选项(单选按钮):(a)@987654323 @ 和 (b) Build only the selected projects。你怎么看?我认为选项 Start building automatically 应该未选中,因为您告诉我们您已经关闭了 Build automatically 选项,直到您完成了 Maven cleanMaven install
    • @KiriSakow 您需要先取消选中它 (build automatically),然后按照步骤 (1) 中的说明重新选中它。否则,它会在每次更改后尝试构建,一切都变得混乱并用红色下划线...
    【解决方案3】:

    devonfw.com 的最佳实践是分离和解耦命令行 maven 和 eclipse 构建。这救了我的命。魔术很简单,可以在这里找到: https://github.com/devonfw/devon4j/blob/develop/pom.xml#L544

    顺便说一句:devonfw 有很多很棒的模式可供学习。这只是百万分之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多