目前,我發現在我們團隊中使用Maven的效率非常低下。所以我有這個問題。如何正確使用Idea IDE中的m2ecipse和maven?
我們有一個由Maven 3組織的300-500個模塊構成的大型項目,我將它分爲10個子項目,因此每個子項目都有一個根pom.xml
。假設他們是project1,project2,.. projectN。我主要工作於project3
由30個模塊組成,它們依次由project4
和project5
決定。
project3:
module3-1 SNAPSHOT
module3-2 SNAPSHOT
module3-3 SNAPSHOT
module3-4 SNAPSHOT
module3-5 SNAPSHOT
module3-6 RELEASE
...
module3-30 RELEASE
在項目3,一些不那麼經常改變模塊的發佈,以及一些(module3-1..3-5)非常頻繁改變,所以我在這裏使用快照版本。
我們運行了Archiva服務器來管理所有工件,包括髮布版本和快照版本。
現在的問題是,當我在project3
改變的東西,一般我希望部署整個子項目:
[my-ubuntu] ~/project3/$ mvn clean; mvn deploy
...
EVERYTHING SUCCEED
[my-ubuntu] ~/project3/$
對於我想到的是,所有的快照版本應該被自動下載&已在其他人的機器中更新。
在命令行中,預期它的工作:
[john's ubuntu] ~/project4/$ mvn package
...
download http://archiva-server/snapshots/project3/...-SNAPSHOT... [SUCCEEDED]
...
EVERYTHING SUCCEED
[john's ubuntu] ~/project4/$
然而,晶晶的仇恨命令行,所以他用的m2eclipse,但m2eclipse的不會更新程序自動快照。我曾嘗試:
TRY 1:
Disable dependency resolution
Enable dependency resolution
(This take maybe 30 minutes, and make eclipse hang, so I don't like. And it seems not work most of time, not download the latest snapshots sometimes)
TRY 2:
Update all dependnecies
Refresh projects
(This take about maybe 5 minutes, but not work some time, not download the latest snapshots sometimes)
TRY 3:
Delete all projects from eclipse workspace
Re-import all projects
(This take maybe 10 minutes, and most "clean" way, though not very fast but okay)
(But not download the latest snapshots sometimes)
TRY 4:
[gin's ubuntu] ~/project4/$ cd ~/.m2/repository/../project3
[gin's ubuntu] ~/.m2/repository/../project3 $ find -name 'resolve-*' -delete
Refresh eclipse projects
(This take about maybe 5 minutes? Well I haven't time it, though.)
(This is the best resolution in my experience, it downloads all snapshots everytime, so it's the final-resolution, well sounds like problem-killer.)
所以,我我個人的經驗,刪除resolve-*
文件在本地存儲庫中似乎是最佳的分辨率,但它只是沒有感覺良好。
與命令行調用mvn
相比,所有IDE都很糟糕..嗯,也許我沒有以正確的方式管理Maven?
我想知道在Eclipse/Idea的東西IDE中正確使用Maven的最佳工作流程。
您的項目最終是單個應用程序還是可能是應用程序的一部分? – khmarbaise 2011-04-20 12:03:26
m2eclipse是Eclipse的插件,當然不適用於IntelliJ ...... IntelliJ支持Maven,而不需要m2eclipse。 – khmarbaise 2011-04-20 12:04:37
嗯,我的意思是'm2eclipse'和'Maven in Idea',因爲Eclipse和Idea都在團隊中使用。最後,還有庫和應用程序以及webapps。 – 2011-04-20 14:20:18