2017-03-02 85 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