2011-04-20 27 views
0

目前,我發現在我們團隊中使用Maven的效率非常低下。所以我有這個問題。如何正確使用Idea IDE中的m2ecipse和maven?

我們有一個由Maven 3組織的300-500個模塊構成的大型項目,我將它分爲10個子項目,因此每個子項目都有一個根pom.xml。假設他們是project1,project2,.. projectN。我主要工作於project3由30個模塊組成,它們依次由project4project5決定。

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的最佳工作流程。

+0

您的項目最終是單個應用程序還是可能是應用程序的一部分? – khmarbaise 2011-04-20 12:03:26

+0

m2eclipse是Eclipse的插件,當然不適用於IntelliJ ...... IntelliJ支持Maven,而不需要m2eclipse。 – khmarbaise 2011-04-20 12:04:37

+0

嗯,我的意思是'm2eclipse'和'Maven in Idea',因爲Eclipse和Idea都在團隊中使用。最後,還有庫和應用程序以及webapps。 – 2011-04-20 14:20:18

回答

1

首先你應該考慮你的項目組織和他們之間的關係。也許你應該多模塊構建以更好的方式處理一些情況。

此外,您必須更改存儲庫的配置以直接下載SNAPSHOT版本。更改settings.xml特別是update policy.

+0

關鍵是:在命令行構建中一切都很順利,但在IDE中並不如此。所以,我想知道你與快照模塊共同開發的做法,你如何更新m2eclipse中的快照,以及如何更新Idea中的快照?當你收到一個'Project3被修改時,你是否更新所有的依賴關係?所以更新你的Maven依賴關係'郵件? – 2011-04-20 14:23:34

+0

不需要檢查配置,如果您需要直接獲取更新,只需配置它即可。默認情況是在一天後獲取新的快照版本。 – khmarbaise 2011-04-20 14:47:44

+0

哦,我可以在哪裏配置超時時間? – 2011-04-20 15:21:14

相關問題