2010-05-12 5 views
7

->Is there a SVN Maven?, 나는 여물 사용 페이지를 갔다 ->http://maven.apache.org/scm/maven-scm-plugin/usage.html은 내가 찾던 아주 것을 발견되지 않았다, 여기에 내가 할 싶은 것이 :메이븐 SVN 체크 아웃 예를

  • 체크 아웃 목록을 내가 예에 지정 프로젝트 :

http://mysvnurl/myprojectname 내가 프로젝트 이름 변수화 수있는 곳

그런 말을 할 수

3-4 또는 n 하위 프로젝트의 수 (모듈) (있을 경우 이는 내가 할 수에 대한 에스 또한 체크 아웃하기를 원하는 이름을 지정하고, 브랜치 (트렁크)와 리비전을 지정할 수 있습니다. 단순화하기 위해 : myprojectname의

  • 체크 아웃 특정 하위 프로젝트 (모듈) 트렁크

예를 :

http://mysvnurl/myprojectname/project1/trunk/ * // 얻을 모든
http://mysvnurl/myprojectname/project2/trunk/ * // 얻을 모든

내가 어떻게해야할까요, 더 많은 expirience를 가진 사람이 이것을하는 방법을 설명하거나 어딘가에서 내가 어디서 읽을 수 있는지를 가리키며, 나는 googled noth을했습니다. 내 요구 사항에 맞는

고맙습니다.

답변

8

나는 당신의 이전 질문 에 언급 된 Maven SCM Plugin는 (다른 사람의 사이에) Subversion 저장소와 상호 작용 할 수 있다는 점에서 SvnAnt 작업의 대안에서 할 메이븐 또는 플러그인 (릴리스 플러그인과 같은). 그러나 나는 네가하고 싶은 일을 정확히 놓쳤다 고 생각한다.

그래서 당신은 CLI에 scm:checkout를 사용할 수있는 방법의 여기,이 질문으로 돌아가 다음과 같이됩니다

mvn scm:checkout -DconnectionUrl=scm:svn:https://svn.dev.java.net/svn/glassfish-svn/trunk/v3 -DcheckoutDirectory=v3 

그리고 우리는 POM에 모든 것을 넣고 플러그인의 configuration에서 이러한 매개 변수를 선언 상상할 수 (또는 여러 개의 URL을 처리해야하는 경우 여러 개의 execution). 또한, 일부는 excludes 또는 includes으로 재생할 수도 있습니다 (지금은 수여됩니다. SCM-526 참조).

... 
<execution> 
    <id>perform-checkout</id> 
    <configuration> 
    <connectionUrl>myUrl</connectionUrl> 
    <checkoutDirectory>myDirectory</checkoutDirectory> 
    <excludes>folder1/*,folder2/*</excludes> 
    </configuration> 
    <phase><!-- some phase --></phase> 
    <goals> 
    <goal>checkout</goal> 
    </goals> 
</execution> 
... 

하지만 이런 식으로 사용한 적이 없습니다. 경우에 따라 scm:bootstrap을보고 최소 POM (Bootstrapping a Project Using a POM 참조)에서 프로젝트를 부트 스트랩하는 데 사용할 수 있습니다. 그러나 두 경우 모두, 나는 이러한 목표들이 당신이 찾고있는 자동화의 수준을 제공하기위한 것이라는 것을 100 % 확신하지는 못합니다.

질문을 많이 볼수록 더 생각합니다. svn:externals (즉,Subversion 기능)이 당신이 추구하는 것입니다. 이것이 내가 단일 명령으로 여러 트렁크를 사용하여 복잡한 프로젝트를 체크 아웃하는 데 사용하는 방법입니다.

1

프로젝트가 다음과 같이 구성되어 있습니까?

root (pom.xml) 
    +--- Module1 (pom.xml) 
    +--- Module2 (pom.xml) 

멀티 모듈 빌드가 있습니까?

맨 먼저 Maven을 통해 결제를 하시겠습니까? 빌드하자 서버는이 작품 또는 IDE ...

+1

@khmarbaise 멀티 모듈 빌드가 있습니까? - 네, 맨 먼저, 왜 Maven을 통해 체크 아웃 하시겠습니까? - 프로세스를 자동화하려고하기 때문에. – ant

+0

확인. 멀티 모듈 빌드는 CI 용 Hudson을 통해 체크 아웃하거나 단일 명령으로 트리를 체크 아웃 할 수 있습니다. Maven 자체에서 그렇게 할 필요가 없습니다. 내가 일을 감독 할 수도 있습니다 ... – khmarbaise

+0

@khmarbaise 것은 체크 아웃하려는 모든 하위 모듈이 모두 – ant

3

일반적으로 다중 모듈 빌드는 하위 모듈이 상위 모듈의 디렉토리 안에 포함되도록 요구합니다. 그러나 Hudson/Jenkins가 모든 모듈이 SCM에서 단일 트리에 있지 않으면 이러한 종류의 구조를 만드는 방법은없는 것 같습니다. 내 프로젝트의 경우에는 그렇지 않습니다. 많은 아이들이 별도의 scm 나무에 있습니다 (github에). maven이 구조를 생성 할 수 있다면 매우 유용 할 것입니다. 자식은 scm에서 가져올 때까지 보이지 않기 때문에 부모 pom 만 주어진다면 그렇게 할 수 있어야합니다.

+0

입니다. 안녕하세요. 그래서이 문제에 대한 해결책을 찾았습니까? – aindl

+0

아니요. maven이 모듈이 실제로 git 서브 모듈 일 때 다중 모듈 릴리스를 올바르게 수행하지 않을 것임을 발견했을 때 다중 모듈 빌드를 포기했습니다. 자식 작업이 올바르지 않습니다. 나는이 두 달 전에 포기 했으므로 세부 사항을 기억하지 못합니다. 그래서 우리는 모듈 (10 개)을 별도로 만들고 릴리스합니다. – GrampaJohn

관련 문제