web項目從Myeclipse遷移到idea的二三事

來源:互聯網
上載者:User

標籤:手動   報錯   無法   版本   software   str   hibernate   class   java   

 今天新接手了一個myeclipse項目,想把這個項目從myeclipse遷移到idea,花了點時間,也遇到一些新的問題,打算記錄下來。

 這是myeclipse的項目結構

  

  我整理一下

  

  整理的時候,我碰到了一下的一下的一些問題:

1 . maven報錯:Could not find artifact net.sf.json-lib 

myeclipse中的pom

maven 在編譯的時候,發現無法引用該jar包,網上翻閱資料發現,這個參考關聯性到jdk版本的實現,jdk13和jdk15。

正確的引用應該是這樣:

當然講jdk15改成jdk13也是可以的。

2 E:\idea_project\danbao\danbao\src\main\java\com\longge\util\TwoDimensionCode.java:[18,31] 錯誤: 程式包com.sun.image.codec.jpeg不存在 

定位一下這個檔案,發現竟然是屬於rt.jar檔案裡面的,maven編譯竟然無法識別這個jar包,網上翻閱查詢資料後發現,竟然是com.sun這個依賴引用的鍋。

運來這個jar包是屬於“Deprecated and restricted API” 翻譯過來就是 “棄用和限制API” 這是單獨屬於sun公司的一個API,現在出現的公有包能很好地取代com.sun,在jdk1.7以上的環境中已經把這種私人包給屏蔽了,項目在myeclipse編譯時間用得jdk1.6我本地在idea運行時的環境是jdk1.7,解決方案,在pom檔案中增加外掛程式,表明jre的路徑。

這樣就是解決了這個編譯問題,jce.jar包找不到也同理。

 3 maven編譯時間無法識別lib檔案夾下的jar包

我是已經在項目的配置中給這個module添加配置好的依賴的,發現這個maven並沒有識別。後來百度了一下maven發現,maven只會載入pom.xml中定義的依賴jar,手動添加的jar包不會被自動載入,也就是說lib檔案夾下面的包並不會別maven自動載入,需要我們手動載入。

添加完這個外掛程式之後,就能解決這個問題了。

這裡多貼一下maven的目錄約定:

${proj-dir}/src/main/Java —— 存放項目的.java檔案。

${proj-dir}/src/main/resources —— 存放項目資源檔,如spring, hibernate設定檔。

${proj-dir}/src/test/jave —— 存放所有測試.java檔案,如JUnit測試類別。

${proj-dir}/src/test/resources —— 測試資源檔。

${proj-dir}/target —— 項目輸出位置。

這個${project.basedir}是一定要寫的,不然換個環境可能還會報jar包找不到的錯誤。

其實maven是個很強大的專案管理工具,只不過他它做的很多工作都對使用者隱藏了,我們只需要遵守它的約定,就能愉快的玩耍了。

 4 maven 編譯時間識別自己寫的程式包

這個錯誤的根源其實在項目結構,或者說著既然是個maven項目,就要遵守maven的遊戲規則。

對於這個錯誤,有兩個解決方案。

4.1調整包的結構,也就是挪動源檔案的位置,因為這個項目不是maven的“父子”依賴關係,一個module可以作為另一個的module,或者需要用的“工具類”並沒有單獨拿出來再建立一個maven項目,沒法打成jar包,供主專案檔案去引用。

4.2依靠maven外掛程式,講“工具類”,“服務類”作為資源檔,然後主檔案能引用,個人推薦第二種方法,雖然我是用了第一種“笨方法”解決的問題。

 

以上就是我在這次遷移項目中主要遇到的問題,記錄下來,供日後總結學習。

 

web項目從Myeclipse遷移到idea的二三事

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.