2014-10-19 222 views
0

隨着每個新版本我做的標籤都包括在內,最終導致這種結構:Maven的發佈插件 - tagbase配置 - 標籤文件夾包含在項目

...VersionExperimentation/tags/VersionExperimentation-0.0.7/tags/VersionExperimentation-0.0.6/tags/VersionExperimentation-0.0.5/tags/VersionExperimentation-0.0.4/tags/VersionExperimentation-0.0.3/tags/VersionExperimentation-0.0.2-beta/tags/VersionExperimentation-0.0.2-alpha/src/main/java 

我POM看起來是這樣的:

<scm> 
    <developerConnection>scm:svn:https://[..root svn folder]/VersionExperimentation</developerConnection> 
</scm> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <configuration> 
       <tagBase>[..root svn folder]/VersionExperimentation/tags</tagBase> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

很明顯,標籤應該位於根中,而不是位於項目所在的VersionExperimentation文件夾中,該文件夾在developerConnection中定義。

這裏的最佳做法是什麼?我們是否應該在SVN根目錄下的某個文件夾內有一個項目,並且項目文件夾位於同一路徑中?

像:

./projectFolder 
./tagsFolder 

其中DeveloperConnection是要指向projectFolder並向tagsFolder發佈tagbase標籤的配置?

這似乎遵循SVN書推薦的版本庫佈局,可以發現here

$ svn list file:///var/svn/single-project-repo 
trunk/ 
branches/ 
tags/ 

如果有的話,我們應該怎樣做,如果我們有個項目,其中,不幸的是立即存儲項目根文件夾?

我們是否應該創建文件夾,將數據移動到正確的位置並適當地配置pom,將標籤存儲在標籤文件夾中並提交到trunk/projectFolder?

回答

0

你應該遵循最佳實踐,因爲他們不是什麼都叫做best practice。我建議有喜歡的東西:

repository-root 
    +-- project1 
    +-- project2 
    +-- project3 

在您的存儲庫中的根級別,你可以插入補充文件夾到您的項目(組織東西等),如果你需要,但每一個項目中,我會建議遵循TTB這意味着每個項目的顛覆結構:

+-- project1 
     +--- trunk 
     +--- tags 
     +--- branchs 

這將導致Maven(約定優於配置)的需要。

除了上述存儲在單個存儲庫中的單個項目不推薦在Subversion中引起,它與Git中事物運行不同的情況並不矛盾。 因此,在Subversion中,沒有任何問題可以在單個Subversion存儲庫中存儲數百個或數千個項目...

另一方面,如果您有一個非常好的理由不使用默認值,則應詳細解釋爲什麼你需要走不同的路。

+0

嗨,謝謝你的回答。爲不同的項目創建不同的svn倉庫的決定不是我的,我認爲做出這個決定的原因是由於代碼隱藏。只有那些需要查看代碼的人才能看到它 - 他們只能訪問與它們一起工作的存儲庫。我不認爲這是最好的決定,但它不是我的。我喜歡你提出結構的方式。所以爲了澄清 - 將這些項目移動到trunk文件夾並在同一個文件夾中創建標籤文件夾,這是一個好主意嗎? – Ev0oD 2014-10-19 12:07:28

+0

爲了防止他人爲此目的爭取權限,並轉向最佳實踐。是。 – khmarbaise 2014-10-19 15:48:38

相關問題