Maven更新项目在Eclipse中到底做什么?

问题描述

Update项目是否运行任何Maven插件,如果运行,则使用哪个默认设置?

在更新项目期间,m2eclipse使用maven- core构建项目对象模型。具体来说,Maven模型构建器用于构建项目模型。换句话说,它导致依赖关系解决,错误和警告通知。有关结果的更多信息,您可以检查org.apache.maven.project.ProjectBuildingResult

我不认为这会导致插件运行。我粗略地看了一下,第2阶段却未启用插件处理的更新。

是否存在不是Maven插件的结果而是Eclipse内部的效果?

是。请参阅答案的结尾部分。

对项目结构有哪些修改?例如,Maven依赖项是否在本地复制?

如果是本地意思,则在Eclipse工作区中则为否。Maven依赖关系显示对本地存储库的引用,该存储库通常是/.m2/repository。还可以根据Eclipse菜单“Windows-> Preference-> User Settings”的设置来解析存储库。

有关更多信息,可以从以下源代码(在eclipse中更新项目时调用的方法之一)开始,

public IStatus runInWorkspace(IProgressMonitor monitor) {
     ...... Unimportant stuff

    MavenUpdateRequest request = new MavenUpdateRequest(projects, offline,forceUpdateDependencies);
    Map<String, IStatus> updateStatus = configurationManager.updateProjectConfiguration(request, updateConfiguration,
    cleanProjects, refreshFromLocal, monitor);


...... Unimportant stuff

}

已执行的不同任务的摘要(并非详尽无遗)

  1. 有关文件系统的项目已刷新。这类似于在Eclipse中的Java项目上调用refresh。
  2. 检查是否在工作空间中添加了依赖项之一。您必须已经注意到在maven依赖项下的本地项目文件夹。Junit和其他东西将使用此功能进行更改。
  3. 使用Maven核心库构建Maven项目模型。
  4. 生命周期映射刷新-M2Eclipse尝试将某些插件生命周期映射到Eclipse操作。
  5. 最后,使用Eclipse构建机制构建Project

另外,它还会在工作空间中使用父pom来做一些事情,在这种情况下这不是很重要。

更新项目配置主要与

  1. 添加Maven性质(.project文件中的org.eclipse.m2e.core.maven2Nature)-在您的上下文中不重要。
  2. 根据project.build.sourceEncodingmaven属性为项目设置默认字符集。
  3. Eclipse-插件生命周期处理。上面的第3点。

解决方法

首先,我知道这个问题,但是我对此处未提供的详细信息感兴趣。

我看了一下m2eclipse的文档,发现它简陋。我唯一可以找到的相关部分是

或者,您可以从项目弹出菜单中运行“ Maven / Update project configuration”操作,该操作默认配置为运行“
process-resources”,也可以在同一首选项页面上对其进行更改。

但是我无法确定是否Update project configuration与相同Update project。我在浏览时发现的所有其他来源也不提供任何详细信息。

回顾一下,我想知道的是:

  1. 是否Update project可以运行任何Maven插件,如果可以,可以运行哪些插件以及具有哪些默认设置?
  2. 是否存在不是Maven插件的结果而是Eclipse内部的效果?
  3. 对项目结构有哪些修改?例如,Maven依赖项是否在本地复制?

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...