随着每个新版本我做的标签都包括在内,最终导致这种结构: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?
嗨,谢谢你的回答。为不同的项目创建不同的svn仓库的决定不是我的,我认为做出这个决定的原因是由于代码隐藏。只有那些需要查看代码的人才能看到它 - 他们只能访问与它们一起工作的存储库。我不认为这是最好的决定,但它不是我的。我喜欢你提出结构的方式。所以为了澄清 - 将这些项目移动到trunk文件夹并在同一个文件夹中创建标签文件夹,这是一个好主意吗? – Ev0oD 2014-10-19 12:07:28
为了防止他人为此目的争取权限,并转向最佳实践。是。 – khmarbaise 2014-10-19 15:48:38