Maven清理,更新,安装和Eclipse清理,刷新,构建 - 一般的正确订单?

时间:2016-01-22 02:38:19

标签: java eclipse maven build rtc

我有一些相互依赖的Eclipse项目。当我尝试构建我的工作区时,我遇到了多个问题。据说,如果我做Maven清理,更新,安装和Project清理,刷新,构建所有问题(我在Eclipse中通过Run和Project菜单相应地完成所有工作),问题就应该出现了。

但是,我很困惑应该执行这些操作的最佳顺序是什么?此外,任何人都能简单地解释一下他们每个人做了什么,这样当我可以跳过一些时,我可以更好地理解和理解吗?

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

是否有任何'一般正确的'如何执行这些操作的顺序?因此,如果我执行它并且一些错误仍然存​​在,那么我的版本中的某些内容是否有问题,而不仅仅是依赖关系?我从RTC(软件开发团队协作工具)中提取项目,我的同事没有这些问题。但是,我最近刚拿到它。

3 个答案:

答案 0 :(得分:12)

首先,你必须明白maven和eclipse是两回事。是的,m2e插件(现在捆绑在eclipse中)可以很好地配置基于maven项目的eclipse项目。但是,有时eclipse会搞砸(几乎总是因为刷新问题)。

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

  

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

所以,基本上:

  • clean 是清洁生命周期的一个阶段,删除目标目录
  • 安装是默认生命周期的一个阶段,做了很多事情,因为触发了所有以前的阶段(生成源代码,编译,运行测试等),最终将您的软件包放入目标目录并将工件放在本地存储库中。
第三,关于日食。如果您已选中“项目 - >自动构建”选项,则无需运行Build。当eclipse搞砸了,我发现执行m2e命令“ Maven - >更新项目”然后刷新,这就足够了。此命令将重新生成.settings文件夹中的某些文件。在极少数情况下,我必须自己删除.settings文件夹中的所有文件,然后运行“更新项目”命令。

结论:mvn clean install应该完成这项工作,如果不是 eclipse - >刷新,如果仍无法正常工作 eclipse - > Maven - >更新项目

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

答案 1 :(得分:2)

特别是在我的情况下,以下一系列行动起作用:

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

答案 2 :(得分:0)

devonfw.com的最佳做法是分离和分离命令行Maven和Eclipse构建。这救了我一命。魔术很简单,可以在这里找到: https://github.com/devonfw/devon4j/blob/develop/pom.xml#L544

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