對於正在工作的項目,我們正在考慮使用Eclipse的Maven插件來自動化我們的構建。現在這個過程比它應該更加複雜,我們希望Maven能夠將事物簡化爲一次構建。將現有Eclipse項目轉換爲Maven項目
我的問題是,是否有嚮導或自動導入器用於將現有Eclipse Java項目轉換爲Maven項目,使用Maven插件? 或者我應該創建一個新的Maven項目,並手動複製了所有的源文件,庫等
對於正在工作的項目,我們正在考慮使用Eclipse的Maven插件來自動化我們的構建。現在這個過程比它應該更加複雜,我們希望Maven能夠將事物簡化爲一次構建。將現有Eclipse項目轉換爲Maven項目
我的問題是,是否有嚮導或自動導入器用於將現有Eclipse Java項目轉換爲Maven項目,使用Maven插件? 或者我應該創建一個新的Maven項目,並手動複製了所有的源文件,庫等
如果你只是想創建一個默認的POM並啓用m2eclipse的特點:所以我假設你目前還沒有一個替代自動構建設置你試圖導入,我假設你在談論m2eclipse插件。
m2eclipse插件提供了一個項目,右擊選擇添加此默認的pom.xml:
較新版本的M2E
右鍵單擊項目 - >子菜單配置 - >轉換成的Maven項目
舊版本M2E
項目上點擊右鍵 - >子菜單中的Maven - >啓用依賴管理換貨。
這將做必要的啓用該項目的插件。
爲了回答「是有一個自動進口商或嚮導?':不是我所知道的。使用上面的選項將允許您爲現有項目啓用m2eclipse插件,避免手動複製。您仍然需要實際設置您需要構建自己的依賴關係和其他內容。
雖然它啓用了M2Eclipse,但它並不是一個真正的嚮導,它不會導入現有的Eclipse項目。相反,它爲用戶提供了選擇依賴關係等的選項,如果用戶對Maven沒有太多經驗,這可能很困難。 –
我將這個問題解釋爲'我是否需要創建一個新項目並手動複製東西來使用m2eclipse插件?',我會澄清的。 – Brabster
是的,我正在專門研究m2eclipse插件 - 這是Maven網站上建議的插件,看起來像得到了很好的支持。 –
我的問題是,是否有一個嚮導或自動導入器用於將現有的Eclipse Java項目轉換爲Maven項目,使用Maven插件?
據我所知,沒有什麼會自動將Eclipse項目轉換爲Maven項目(即修改佈局,創建POM,「生成」併爲其提供元數據,檢測庫及其版本將它們添加到POM等)。 Eclipse只是沒有足夠的元數據來實現這一點(這正是POM的要點)和/或產生一個體面的結果。
或者我應該創建一個新的Maven項目,並手動複製了所有的源文件,庫等
這將是我看來最好的選擇。創建一個Maven項目,複製/移動源,資源,測試,測試資源投入到各自的目錄中,聲明依賴性等
現在仍然如此? –
爲什麼這個答案比+199答案更高?我幾乎沒有看到那一個 – Evorlor
開始從M2E 0.13.0(如果不早於),你可以將一個Java項目從上下文菜單中選擇Maven項目。這裏是如何:
這裏是detailed steps的屏幕截圖。
這仍然不會創建目錄結構並在pom中添加依賴關係。在eclipse中也可以使用Android項目的 –
? – Quasaur
m2e是否仍然不創建maven目錄結構並在pom中添加依賴關係? –
我有同樣的問題,並希望Mavenise包含大約60個Eclipse項目的整個Eclipse工作區。這樣做需要大量的時間和備選方案,但這並不可行。爲了解決這個問題,我最終在github上創建了一個名爲eclipse-to-maven的項目。由於日食沒有關於依賴的所有必要信息,它執行以下操作:
基於在.classpath文件<classpathentry/>
XML元素,它創建的另一個項目的依賴關係,標識庫jar文件和基於在其名稱(例如jakarta-oro-2.0.8.jar)上標識其版本。目前artifactId
和groupId
是相同的,因爲我找不到可以返回基於artifactId
的依賴關係的Maven組標識的內容。儘管這不是一個完美的解決方案,但它爲加速Mavenisation提供了良好的基礎。
它根據Maven的約定將所有源文件夾(如src/main/java
)
作爲與空間的名稱Eclipse項目是很難對付在Linux/Unix環境下,重命名他們也有不帶空格的名字。
生成的pom.xml文件包含依賴關係和基本的pom結構。您必須手動添加必需的Maven插件。
有趣!它被移植到月神?該項目仍然是一個eclipse項目(有效的'.classpath'和'.project'文件)?你可以添加你的答案如何使用你的插件來簡化一個簡單的JavaSE項目 - 以及目錄結構中的實際變化是什麼? –
對不起,但我不知道露娜是什麼。當項目目錄結構發生變化時,它將不再是有效的eclipse項目。不過使用Maven創建修改後的eclipse配置很簡單。這不是一個插件,而是一個工具。在項目的README中已經提到了如何運行它。目錄結構在Maven約定中被轉換。因此,所有的資源都以src/main/java爲例。 –
Luna是eclipse的最新版本! –
承東的答案是正確的,你應該用Configure>Convert to Maven Project
。不過,我必須補充的轉換過程已經大大改善,因爲m2e 0.13.0:m2e 1.1+和m2e-wtp 0.16.0+現在可以convert the existing eclipse settings into maven plugin configuration。至於依賴轉換問題,您可以嘗試JBoss工具(JBT)4.0 Maven集成功能,其中包含一個插入到m2e轉換過程中的實驗性轉換向導:http://docs.jboss.org/tools/whatsnew/maven/maven-news-4.0.0.Beta1.html。
它並不假裝是最終的解決方案(沒有什麼可以),它應該極大地幫助引導你的Maven轉換過程。另外,僅供參考,這裏是some ideas to enhance m2e's conversion process,重構使用Maven佈局很可能將在未來實現。
JBT 4.0(Eclipse的需要JavaEE的朱諾)可以從http://download.jboss.org/jbosstools/updates/stable/juno/或從Eclipse市場
右鍵點擊項目名稱>配置>轉換爲Maven項目>點擊完成安裝。在這裏,您將添加一些依賴項來下載並添加預期的jar文件。
這將創建一個自動生成的pom.xml文件。在eclipse編輯器中以xml格式打開該文件。構建標籤(</build>
)後,添加您可以從maven網站複製的依賴關係,並將它們添加到那裏。現在你很好走。這些依賴關係會自動添加你需要的jar文件。
這會創建maven文件夾結構嗎? –
@Mr_and_Mrs_D:沒有 –
這是必要的,因爲或多或少,當我們從git導入項目時,它不是maven項目,所以maven依賴項不在構建路徑中。
以下是我將一個普通項目轉換爲maven項目所做的工作。
一般項目 - > java項目 右鍵單擊項目,properties-> project facets,單擊「java」。 這一步將把一個普通的項目變成java項目。
java項目 - > maven項目 右鍵單擊項目,configure - >轉換爲maven項目 此時,maven依賴項庫仍然不在構建路徑中。 項目屬性,構建路徑,添加庫,添加maven依賴庫lib
並等待幾秒鐘,當加載依賴關係時,項目就緒!
有一個命令行程序可將任何Java項目轉換爲SBT/Maven項目。
它解析所有jar,並嘗試根據SHA校驗和,類路徑或文件名找出正確的版本。然後它會嘗試編譯源代碼,直到找到一個可用的配置。可以給出自定義任務以執行每個依賴配置。
UniversalResolver 1.0
Usage: UniversalResolver [options]
-s <srcpath1>,<srcpath2>... | --srcPaths <srcpath1>,<srcpath2>...
required src paths to include
-j <jar1>,<jar2>... | --jars <jar1>,<jar2>...
required jars/jar paths to include
-t /path/To/Dir | --testDirectory /path/To/Dir
required directory where test configurations will be stored
-a <task1>,<task2>... | --sbt-tasks <task1>,<task2>...
SBT Tasks to be executed. i.e. compile
-d /path/To/dependencyFile.json | --dependencyFile /path/To/dependencyFile.json
optional file where the dependency buffer will be stored
-l | --search
load and search dependencies from remote repositories
-g | --generateConfigurations
generate dependency configurations
-c <value> | --findByNameCount <value>
number of dependencies to resolve by class name per jar
這看起來像一個非常有吸引力的選擇。但是,因爲它目前已經打包,所以不太容易訪問。如何打包和部署source.code並不明顯。大多數Java開發人員不是Scala開發人員,SBT也不是社區中廣泛使用的工具。 –
用於轉換到搖籃是模擬到Maven的:
右鍵單擊項目 - >子菜單配置 - >轉換到搖籃(STS)項目
答案與問題無關 –
我通過尋找Gradle找到了這個問題,多次爲其他O.S.添加答案很有幫助。而不是被問及的O.S.因爲它不存在針對個案的問題。關於Gradle,我不會創建一個新的問題來回答我認爲有用的問題,而是我發佈這個問題。感謝和問候。 – another
請問您現有的構建使用一個Ant腳本? –
您應該切換接受的答案 –