[英]Maven release plugin - tagbase configuration - tags folder included in project
在每個新發行版中,我都包含了標簽,最終導致了這種結構:
...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>
顯然,標記應位於項目的根目錄中,而不是在developerConnection中定義的項目所在的VersionExperimentation文件夾中。
最佳做法是什么? 我們是否應該在SVN根目錄下的某個文件夾內有一個項目,並且在同一路徑下的標簽位於項目文件夾所在的位置?
喜歡:
./projectFolder
./tagsFolder
在哪里DeveloperConnection將指向projectFolder並將發布tagbase標簽配置為tagsFolder?
這似乎遵循svn book推薦的存儲庫布局,可在此處找到
$ svn list file:///var/svn/single-project-repo
trunk/
branches/
tags/
如果是,如果有項目,該怎么辦?不幸的是,哪些項目立即將項目存儲在根文件夾中?
我們是否應該創建文件夾,將數據移動到正確的位置並適當配置pom,以將標簽存儲在tags文件夾中並提交到trunk / projectFolder?
您應該遵循最佳實踐,因為它們並非無所謂的best practice
。 我建議有這樣的事情:
repository-root
+-- project1
+-- project2
+-- project3
在存儲庫的根目錄級別,您可以根據需要在項目中插入補充文件夾(組織內容等),但在每個項目中,我建議遵循TTB的Subversion結構,這意味着要擁有每個項目:
+-- project1
+--- trunk
+--- tags
+--- branchs
因此,這將消除在Maven中進行配置的需要(配置約定)。
除了上述以外,不建議將單個項目存儲在單個存儲庫中,因為在Subversion中,與運行不同的Git相矛盾,它不是必需的。 因此在Subversion中,在單個Subversion存儲庫中存儲數百或數千個項目根本沒有問題...
另一方面,如果確實有理由不采用默認值,則應詳細說明為什么需要采用不同的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.