问题描述
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
}
已执行的不同任务的摘要(并非详尽无遗)
- 有关文件系统的项目已刷新。这类似于在Eclipse中的Java项目上调用refresh。
- 检查是否在工作空间中添加了依赖项之一。您必须已经注意到在maven依赖项下的本地项目文件夹。Junit和其他东西将使用此功能进行更改。
- 使用Maven核心库构建Maven项目模型。
- 生命周期映射刷新-M2Eclipse尝试将某些插件生命周期映射到Eclipse操作。
- 最后,使用Eclipse构建机制构建Project
另外,它还会在工作空间中使用父pom来做一些事情,在这种情况下这不是很重要。
更新项目配置主要与
- 添加Maven性质(.project文件中的org.eclipse.m2e.core.maven2Nature)-在您的上下文中不重要。
- 根据
project.build.sourceEncoding
maven属性为项目设置默认字符集。 - Eclipse-插件生命周期处理。上面的第3点。
解决方法
首先,我知道这个问题,但是我对此处未提供的详细信息感兴趣。
我看了一下m2eclipse的文档,发现它简陋。我唯一可以找到的相关部分是
或者,您可以从项目弹出菜单中运行“ Maven / Update project configuration”操作,该操作默认配置为运行“
process-resources”,也可以在同一首选项页面上对其进行更改。
但是我无法确定是否Update project configuration
与相同Update
project
。我在浏览时发现的所有其他来源也不提供任何详细信息。
回顾一下,我想知道的是:
- 是否
Update project
可以运行任何Maven插件,如果可以,可以运行哪些插件以及具有哪些默认设置? - 是否存在不是Maven插件的结果而是Eclipse内部的效果?
- 对项目结构有哪些修改?例如,Maven依赖项是否在本地复制?