【问题标题】:Maven release plugin - tagbase configuration - tags folder included in projectMaven 发布插件 - tagbase 配置 - 项目中包含的 tags 文件夹
【发布时间】:2014-10-19 11:23:35
【问题描述】:

我制作的每个新版本都包含标签,这最终导致了这种结构:

...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 并将发布 tagbase 标签的配置指向 tagsFolder?

这似乎遵循svn book推荐的存储库布局,可以在here找到

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

如果是,我们应该怎么做,如果我们有项目,不幸的是立即将项目存储在根文件夹中?

我们是否应该创建文件夹,将数据移动到正确的位置并适当地配置 pom,将标签存储在 tags 文件夹中并提交到 trunk/projectFolder?

【问题讨论】:

    标签: maven svn tags


    【解决方案1】:

    您应该遵循最佳实践,因为它们并非毫无意义,称为best practice。我建议有这样的东西:

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

    如果需要,您可以在存储库的根级别将补充文件夹插入项目(组织内容等),但在每个项目中,我建议遵循颠覆的 TTB 结构,这意味着拥有每个项目:

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

    这将消除 Maven 中的配置需求(约定优于配置)。

    除了上述之外,不推荐将单个项目存储在单个存储库中,因为在 Subversion 中,它与运行不同的 Git 并不矛盾。 因此,在 Subversion 中,将成百上千个项目存储在单个 Subversion 存储库中完全没有问题......

    另一方面,如果您有充分的理由不采用默认设置,则应详细说明为什么需要采用不同的路径。

    【讨论】:

    • 您好,感谢您的回答。为不同的项目制作不同的 svn 存储库的决定不是我的,我认为由负责它做出这个决定的原因是因为代码隐藏。只有那些需要查看代码的人才能看到它——他们只能有限地访问他们使用的那些存储库。我不认为这是最好的决定,但这不是我的决定。我喜欢你提出结构的方式。所以只是为了澄清 - 按照这种做法将项目移动到主干文件夹并在同一文件夹中创建标签文件夹是一个好主意吗?
    • 为了防止其他人为此目的看到某些东西,存在许可。并转向最佳实践。是的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2020-03-17
    相关资源
    最近更新 更多