在工作中經(jīng)常遇到需要對項目工程或workspace進行變更或者將工程復制到其他電腦哼蛆,然后又需要在eclipse中導入項目進行對應配置渐裂。說實話我比較懶蹦渣,不愿每次都重新導入(其實標準工程導入工作量也不怎么大的)怠缸,就想能不能直接把工作空間的配置復制到因的工作空間中呢?其實理論是完全沒問題的嗅义,畢竟eclipse就是把工作空間的設置放在了.metadata中屏歹。那就試一下,發(fā)現(xiàn)啟動eclipse時報錯了之碗。經(jīng)過摸索最終得出了解決思路蝙眶,eclipse 項目遷移路徑后直接復制workspace引發(fā)內(nèi)部項目路徑錯誤問題解決辦法:
找到病根
在新工作空間找到
.metadata.plugins\org.eclipse.core.resources.projects\【projectname】.location文件。
這里描述了工作空間中的所有項目信息(包括路徑 項目名等)继控、項目集信息械馆、項目間依賴信息胖眷。
分析病況
通過文本文件編輯器可以看到項目路徑為復制前的路徑(原空間與新工作空間路徑不一致導致出現(xiàn)啟動異常)武通,需要修改為新的路徑名。
確定治療方案
注意珊搀,該文件內(nèi)容部分為二進制格式冶忱,不能用記事本等文本編輯器直接修改的,需要通過ue進行編輯修改(十六進制)境析。修改部分截圖如下
藥到病除的治療
URI前的16進制54H 表示緊隨其后的項目路徑長度的字節(jié)數(shù)囚枪,需要與修改后的路徑長度一致派诬。
修改uri后內(nèi)容為新空間的項目路徑名,統(tǒng)計路徑字節(jié)數(shù)链沼,修改uri前的數(shù)字為對應的字節(jié)數(shù)默赂。
病灶區(qū)分析
每個項目可能存在依賴項目,遷移時可能會有依賴項目名稱變動括勺,需要檢查修改缆八。
路徑后的00h 00h 00h 01h 00h 18h,其中00 01h表示依賴項目有一個疾捍,
00 18h表示依賴項目的長度字節(jié)數(shù)
理論依據(jù)
- eclipse對應源代碼鏈接地址:
eclipse對應源代碼
eclipse解析location源代碼 - location文件數(shù)據(jù)結(jié)構(gòu)描述:
the project location and the project's dynamic references are stored here.The project location will be set to null if the default location should be used. In the case of failure, log the exception and return silently, thus reverting to using the default location and no dynamic references. The current format of the location file is:
UTF - project location
int - number of dynamic project references
UTF - project reference 1
... repeat for remaining references
學習過程中遇到什么問題或者想獲取學習資源的話奈辰,歡迎加入技術(shù)愛好者交流群373107565,我們一起學技術(shù)乱豆!