2011-04-20 4 views
0

현재 우리 팀에서 Maven 사용이 비효율적이라는 사실을 발견했습니다. 그래서 나는이 질문을 가지고있다.Idea IDE에서 m2ecipse 및 maven을 올바르게 사용하는 방법은 무엇입니까?

큰 프로젝트는 Maven 3으로 구성된 300-500 개의 모듈로 구성되어 있습니다. 10 개의 하위 프로젝트로 나눠서 각 하위 프로젝트에 루트 pom.xml이 있습니다. 그들이 project1, project2, .. projectN이라고합시다. 나는 주로 project3을 30 개의 모듈로 구성하고 있으며, 그들은 project4project5에 의존한다. 프로젝트 3에서

project3: 
    module3-1 SNAPSHOT 
    module3-2 SNAPSHOT 
    module3-3 SNAPSHOT 
    module3-4 SNAPSHOT 
    module3-5 SNAPSHOT 
    module3-6 RELEASE 
    ... 
    module3-30 RELEASE 

, 일부는하지 너무 자주 모듈을 출시 변경하고 일부 (module3-1..3-5이) 매우 자주 변경, 그래서 내가 여기 SNAPSHOT 버전을 사용합니다.

우리는 Archiva 서버를 실행하여 모든 아티팩트를 관리하고 출시 버전과 스냅 샷 버전을 모두 포함합니다. 나는 모든 스냅 샷 버전을 자동으로 다운로드해야한다 기대를 들어

[my-ubuntu] ~/project3/$ mvn clean; mvn deploy 
... 
EVERYTHING SUCCEED 
[my-ubuntu] ~/project3/$ 

: 내 project3에서 뭔가를 변경하는 경우

이제 문제는, 일반적으로 나는 전체 하위 프로젝트를 배포하고자한다 &가 다른 사람의 컴퓨터에서 업데이트되었습니다. 예상대로 명령 줄에서

,이 일 것 :

[john's ubuntu] ~/project4/$ mvn package 
... 
download http://archiva-server/snapshots/project3/...-SNAPSHOT... [SUCCEEDED] 
... 
EVERYTHING SUCCEED 
[john's ubuntu] ~/project4/$ 

그러나, 진 증오 명령 줄, 그래서 그는 m2eclipse에를 사용하지만, m2eclipse에이 automaticlly 찾을 스냅 샷을 업데이트하지 않습니다. 로컬 저장소는 최고의 해상도를 보인다에서 resolve-* 파일을 삭제,

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.) 

그래서, 내 개인적인 경험을하지만, 그냥 기분이 아니에요 : 나는 노력했다.

명령 줄 호출 과 비교하여 모든 IDE가 빠름 .. 올바른 방법으로 Maven을 관리하지 못했을 수 있습니까?

Eclipse/Idea stuff IDE에서 Maven을 올바르게 사용하기위한 최상의 워크 플로우에 대해 알고 싶습니다.

+0

프로젝트가 최종적으로 단일 응용 프로그램입니까, 아니면 응용 프로그램의 일부일 수 있습니까? – khmarbaise

+0

m2eclipse는 Eclipse 용 플러그인이며 IntelliJ 용 플러그인이 아닙니다 ... IntelliJ는 m2eclipse가없는 Maven을 지원합니다. – khmarbaise

+0

글쎄, 이클립스와 아이디어가 팀에서 사용되기 때문에'm2eclipse'와'Maven in Idea'를 모두 의미합니다. 마지막에는 도서관과 응용 프로그램 및 웹 응용 프로그램이 있습니다. –

답변

1

먼저 프로젝트의 구성과 서로의 관계에 대해 생각해야합니다. 더 나은 방법으로 상황의 일부를 처리하기 위해 Multimodule 빌드에 대해 알아야 할 수도 있습니다.

훨씬 더 SNAPSHOT 버전을 직접 다운로드하려면 저장소 구성을 변경해야합니다. settings.xml을 특히 변경하십시오. update policy.

+0

요점은 : 명령 행 빌드에서는 모든 것이 잘되지만 IDE에서는 그렇게 기대하지 않는다는 것입니다. 따라서 스냅 샷 모듈과 함께 공동 개발하는 방법을 알고 싶습니다. m2eclipse에서 스냅 샷을 업데이트하는 방법과 아이디어에서 스냅 샷을 어떻게 업데이트합니까? 'Project3가 수정되었으므로, 당신의 의존성을 업데이트하겠습니까? '라는 메일을 받았을 때'모든 의존성을 갱신 하시겠습니까?' –

+0

No.. 구성을 확인하고 필요한 경우 직접 업데이트를 받으십시오.기본값은 하루 후에 새 스냅 샷 버전을 얻는 것입니다. – khmarbaise

+0

아, 시간 제한은 어디에서 설정할 수 있습니까? –

관련 문제