2010-05-12 60 views
7

關於我剛纔的問題 - >Is there a SVN Maven?,我去槽使用頁面 - >http://maven.apache.org/scm/maven-scm-plugin/usage.html沒有找到完全是我一直在尋找,在這裏我想這樣做:Maven的SVN結帳例如

  • 結帳清單其中我對前指定項目:

http://mysvnurl/myprojectname在那裏我可以參數化的項目名稱

然後讓說,如果有3-4或N(模塊)(分項目的數量,我可以小號使我想要簽出的名字也一樣),並且我可以指定分支(trunk)和修訂版本。爲了簡化:myprojectname的

  • 結帳某些個子項目(模塊)主幹

例:

http://mysvnurl/myprojectname/project1/trunk/ * //得到的一切
http://mysvnurl/myprojectname/project2/trunk/ * //得到的一切

我將如何做到這一點與maven,可以有更多的expirience解釋如何做到這一點,或指向我的地方,我可以讀如何,我GOOGLE了不特定於我的需求。

謝謝

回答

8

,我在你前面的問題提到的Maven SCM Plugin在這個意義上,以SvnAnt任務的替代方案,它允許使用Subversion版本庫(其中包括)互動Maven或插件(如發佈插件)。但我想我錯過了你想要做的事。

因此,讓我們再回到這個問題,這裏是你如何能在CLI中使用scm:checkout

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

而且我們可以想像把這個所有的POM和插件的configuration聲明這些參數(如果您需要處理多個網址,則需要多個execution)。並且可選地,您甚至可以玩一些excludesincludes(現在很榮幸,請參閱 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你有一個multimodule構建? - 是的,第一件事,你爲什麼想通過Maven結帳? - 因爲我想讓這個過程自動化。 – ant 2010-05-12 11:59:31

+0

好的。通過Hudson for CI檢出多模塊構建,或者使用單個命令檢出樹。在Maven本身中沒有必要這麼做..可能是我忽略了一件事... – khmarbaise 2010-05-12 12:17:38

+0

@khmarbaise的事情是我想要簽出某些子模塊並非全部 – ant 2010-05-12 12:31:14

3

多模塊構建通常要求子模塊包含在父模塊的目錄中。但似乎沒有辦法讓哈德森/詹金斯創建這種結構,除非所有模塊都位於SCM中的單一樹中。對於我的項目,情況並非如此。許多孩子在單獨的scm樹(在github上)。如果maven可以創建這個結構,這將會非常有幫助。它需要能夠做到這一點只給父母,因爲孩子從scm中取出之前是不可見的。

+0

嗨。那麼你有沒有找到解決這個問題的辦法? – aindl 2012-02-09 07:57:31

+0

不,我放棄了多模塊構建,當我發現maven在模塊實際上是git子模塊時不會正確執行多模塊釋放。 git操作不正確。幾個月前我放棄了這個,所以我不記得細節。所以我們分別建立和發佈模塊(其中10個)。 – GrampaJohn 2012-03-13 03:50:25