在更新项目期间,m2eclipse使用maven-core构建项目对象模型。具体而言,使用
maven model builder来构建项目模型。换句话说,它会导致依赖关系的解析、错误和警告通知。有关结果的更多信息,您可以检查
org.apache.maven.project.ProjectBuildingResult
。
我认为它不会导致插件运行。我粗略地看了一下,在进行更新时未启用
phase 2,该阶段处理插件。
是的。请参见答案的最后部分。
例如,Maven依赖项是否被本地复制?
如果你说的是在Eclipse工作空间内,那么答案是否定的。Maven Dependencies显示了对本地仓库的引用,通常是/.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
}
不同任务的概述(非详尽)
- 刷新文件系统中的项目。这类似于在eclipse中调用java项目的“刷新”操作。
- 检查工作区中是否已添加依赖项。您可能已经注意到了maven依赖项本地项目文件夹下的Junit和其他内容将使用此功能进行更改。
- 使用maven-core库构建maven项目模型。
- 生命周期映射刷新 - M2Eclipse试图将一些插件生命周期映射到eclipse操作。有关更多信息,请查看。
- 最后,使用Eclipse构建机制构建项目。
此外,它还会处理工作区中父POM的存在,但在此上下文中并不是非常重要。
更新项目配置主要与以下相关:
- 添加Maven自然(在.project文件中的org.eclipse.m2e.core.maven2Nature)-在您的情况下不重要。请参见this。
- 根据
project.build.sourceEncoding
Maven属性为您的项目设置默认字符集。
- Eclipse-插件生命周期处理。上面的第3点。