2017-03-02 82 views
9

首先,我知道this question,但我对这里没有提供的细节感兴趣。Maven Update Project在Eclipse中做了什么?

我看了一下m2eclipse的文档,发现它不令人满意地简洁。唯一相关的部分,我能找到的是

或者你可以运行从项目的弹出菜单,这是默认配置为运行“的过程资源”“的Maven /更新项目配置”的行动,它也可以改变在相同的首选项页面上。

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

总结一下,我想知道的是:

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

回答

4

更新项目是否运行任何Maven插件,如果是,哪些和哪些默认设置?

在更新项目中,m2eclipse使用maven-core构建项目对象模型。具体而言,maven model builder用于构建项目模型。换句话说,它会导致依赖性解决,错误和警告通知。有关结果的更多信息,你可以检查org.apache.maven.project.ProjectBuildingResult

我不认为它会导致运行插件。我粗略地看了一下,并且phase 2在做更新没有启用插件处理。

是否有影响不是Maven插件的结果,而是Eclipse的内部影响?

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

对项目结构的修改是什么?例如,Maven的依赖关系是在本地复制的吗?

如果在本地,你的意思是在eclipse workspace中没有。 Maven Dependencies显示对通常为/.m2/repository的本地存储库的引用。该库也基于Eclipse菜单“Windows->首选项 - >用户设置”的设置进行解析。

如需进一步信息,您可以从以下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 

}

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

  1. 项目相对于文件系统被刷新。这与在eclipse中调用Java项目的刷新类似。
  2. 检查是否有一个依赖关系已添加到工作区中。你必须注意到在Maven依赖关系下的本地项目文件夹。 Junit和其他内容将使用此功能选择更改。
  3. 使用maven-core库构建maven项目模型。
  4. 生命周期映射刷新 - M2Eclipse尝试将一些插件生命周期映射到eclipse操作。欲了解更多信息,check
  5. 最后,构建项目使用Eclipse构建机制

此外,它也做一些事情与父母聚甲醛存在于这是不是在这方面非常重要的工作区。

更新项目配置majorly与

  1. 添加Maven的性质(org.eclipse.m2e.core.maven2Nature在项目文件) - 在你的背景并不重要。请参阅this
  2. 根据project.build.sourceEncoding maven属性设置项目的默认字符集。
  3. Eclipse - 插件生命周期处理。上面的第3点。
+1

谢谢,这是很多有用的信息。如果我理解正确,源代码是唯一可用的综合参考? – burubum

+1

是的,不幸的是它不是非常可读的:(对撰稿人没有冒犯性 – GauravJ

+0

@GauravJ谢谢你的分享。你怎么知道这个?有没有关于'Update Project'命令的官方声明(在线提供) '更新Maven项目'对话框?您能否提供链接?(仅供参考)我发现的唯一记录的事件是在m2e文档中,并且完全不足(请参阅eclipse.org/m2e/documentation/release-notes-15.html ) – KiriSakow