Maven Update Project 在 Eclipse 中到底做了什么?
What exactly does Maven Update Project do in Eclipse?
首先,我知道this question,但我对那里没有提供的细节很感兴趣。
我查看了 m2eclipse 的文档,发现它不够简洁。我能找到的唯一相关部分是
Alternatively you can run “Maven / Update project configuration” action from the project popup menu, which is configured to run “process-resources” by default and it can be also changed on the same preference page.
但我无法确定Update project configuration
是否与Update project
相同。我在四处浏览时发现的所有其他来源也没有提供任何详细信息。
回顾一下,我想知道的是:
Update project
运行 是否有任何 Maven 插件,如果有,有哪些以及使用哪些默认设置?
- 是否有不是 Maven 插件的结果,而是 Eclipse 内部的效果?
- 项目结构有哪些修改?比如Maven依赖是否复制到本地?
Does Update project run any Maven plugin and, if so, which ones and with which default settings?
m2eclipse在更新项目时使用maven-core构建项目对象模型。具体来说,maven model builder用于构建项目模型。换句话说,它会导致依赖项解析、错误和警告通知。有关结果的更多信息,您可以查看org.apache.maven.project.ProjectBuildingResult
我不认为它会产生 运行 个插件。我粗略地看了一下 phase 2 没有启用进行插件处理的更新。
Are there effects which are not a result of a Maven plugin, but are internal to Eclipse?
是的。请参阅答案的结尾部分。
What are the modifications on the project structure? For instance, are Maven dependencies copied locally?
如果您的意思是在本地,那么在 Eclipse 工作区中则没有。 Maven Dependencies 显示对本地存储库的引用,通常是 /.m2/repository。 Repository也是根据Eclipse菜单"Windows->Preference->User Settings"的设置来解析的。
更多信息,您可以从下面开始source code(在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
}
执行的不同任务的摘要(不详尽)
- 项目已根据文件系统刷新。这类似于在 eclipse 中对 java 项目调用刷新。
- 检查工作区中是否添加了依赖项之一。您一定已经注意到在 maven dependencies 本地项目文件夹下。 Junit 和其他东西将使用此功能选择更改。
- 使用 maven 核心库构建 maven 项目模型。
- 生命周期映射刷新 - M2Eclipse 尝试将一些插件生命周期映射到 eclipse 操作。如需更多信息,check
- 最后,使用 Eclipse 构建机制构建项目
此外,它还会做一些在工作区中存在父 pom 的事情,这在这种情况下不是很重要。
更新项目配置主要与
相关
- 添加 Maven 特性(org.eclipse.m2e.core.maven2Nature in .project 文件)- 在您的上下文中并不重要。参见 this。
- 根据
project.build.sourceEncoding
maven 属性. 为您的项目设置默认字符集
- Eclipse - 插件生命周期处理。以上第 3 点。
首先,我知道this question,但我对那里没有提供的细节很感兴趣。
我查看了 m2eclipse 的文档,发现它不够简洁。我能找到的唯一相关部分是
Alternatively you can run “Maven / Update project configuration” action from the project popup menu, which is configured to run “process-resources” by default and it can be also changed on the same preference page.
但我无法确定Update project configuration
是否与Update project
相同。我在四处浏览时发现的所有其他来源也没有提供任何详细信息。
回顾一下,我想知道的是:
Update project
运行 是否有任何 Maven 插件,如果有,有哪些以及使用哪些默认设置?- 是否有不是 Maven 插件的结果,而是 Eclipse 内部的效果?
- 项目结构有哪些修改?比如Maven依赖是否复制到本地?
Does Update project run any Maven plugin and, if so, which ones and with which default settings?
m2eclipse在更新项目时使用maven-core构建项目对象模型。具体来说,maven model builder用于构建项目模型。换句话说,它会导致依赖项解析、错误和警告通知。有关结果的更多信息,您可以查看org.apache.maven.project.ProjectBuildingResult
我不认为它会产生 运行 个插件。我粗略地看了一下 phase 2 没有启用进行插件处理的更新。
Are there effects which are not a result of a Maven plugin, but are internal to Eclipse?
是的。请参阅答案的结尾部分。
What are the modifications on the project structure? For instance, are Maven dependencies copied locally?
如果您的意思是在本地,那么在 Eclipse 工作区中则没有。 Maven Dependencies 显示对本地存储库的引用,通常是 /.m2/repository。 Repository也是根据Eclipse菜单"Windows->Preference->User Settings"的设置来解析的。
更多信息,您可以从下面开始source code(在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
}
执行的不同任务的摘要(不详尽)
- 项目已根据文件系统刷新。这类似于在 eclipse 中对 java 项目调用刷新。
- 检查工作区中是否添加了依赖项之一。您一定已经注意到在 maven dependencies 本地项目文件夹下。 Junit 和其他东西将使用此功能选择更改。
- 使用 maven 核心库构建 maven 项目模型。
- 生命周期映射刷新 - M2Eclipse 尝试将一些插件生命周期映射到 eclipse 操作。如需更多信息,check
- 最后,使用 Eclipse 构建机制构建项目
此外,它还会做一些在工作区中存在父 pom 的事情,这在这种情况下不是很重要。
更新项目配置主要与
相关- 添加 Maven 特性(org.eclipse.m2e.core.maven2Nature in .project 文件)- 在您的上下文中并不重要。参见 this。
- 根据
project.build.sourceEncoding
maven 属性. 为您的项目设置默认字符集
- Eclipse - 插件生命周期处理。以上第 3 点。