【问题标题】:Maven release plugin creating recursive directories in svnMaven 发布插件在 svn 中创建递归目录
【发布时间】:2012-11-27 18:54:50
【问题描述】:

我正在使用 maven-release-plugin 2.3.2 并且能够 prepare and perform release 。问题是这样的。

SVN 回购: http://svnserver:8080/myrepo/test/projectA

Project A         
   |
    branches/
    tags/
    trunk/

当我第一次执行mvn release:perform 时,它会在 tags/ 文件夹中创建这个结构

branches/
tags/
   |
    ProjectA_1.0.0
        | 
        branches/ <structure from the parent branches/ folder>
        tags/
        trunk/

当我第二次执行mvn release:perform 时,这是输出

branches/
tags/
   |
    ProjectA_1.0.0
        | 
        branches/<structure from the parent branches/ folder>
        tags/
        trunk/
    ProjectA_1.0.1
        | 
        branches/<structure from the parent branches/ folder>
        tags/ProjectA_1.0.0/branches/<structure from the parent branches/ folder>
        tags/ProjectA_1.0.0/tags/
        tags/ProjectA_1.0.0/trunk
        trunk/

等等......整个 1.0.1 将被复制到 1.0.2 中,直到我有一个递归的噩梦:)

虽然如果我在 Nexus 中访问我的 &lt;releases&gt; 存储库,一切都很好,我看到像这样的干净目录

1.0.0
1.0.1
1.0.2

其中包含正确的工件。


我已经直接在命令行上使用插件测试了这一点,并使用 M2 发布插件从 Jenkins 进行了测试。结果相同。这指出了我在某处错误配置的方向,而不是我如何或从哪里调用它。


插件或scm 标签有什么问题?

【问题讨论】:

  • 我认为开发者连接错误(没有指向你父 pom.xml 的位置)。或者你为发布插件配置了错误的 branchBase / tagBase。
  • 我正在调查developerConnection,正如@khmarbaise 所建议的那样,但我没有明确使用标签库,因为我的 SVN 是非常标准的结构。
  • @wemu .. 它实际上是两种设置。我最终也使用了-DtagBase。干杯

标签: maven jenkins maven-3 jenkins-plugins maven-release-plugin


【解决方案1】:

您必须定义要发布的项目的主干,并将其配置到 pom.xml 的 scm 区域:

定义的意思:

<scm>
  <connection>scm:svn:http://svnserver:8080/myrepo/test/projectA/trunk</connection>
  <developerConnection>scm:svn:http://svnserver:8080/myrepo/test/projectA/trunk</developerConnection>
</scm>

如果您有一个多模块构建,则必须仅在父级而不是子级中定义。

【讨论】:

  • 我们是说我必须为每个项目级别的 POM 设置一个 SCM 标签。我不能保留在我公司的父 POM 中吗?
  • 好吧,如果继承父项的项目实际上不在其下会发生什么?最好的方法是每个项目都有一个明确的&lt;scm/&gt; 部分。如果是多模块项目,可以跳过,但一般情况下应该有。
  • @PulakAgrawal scm 信息的想法是识别每个项目,如果您只下载 pom 文件,您可以获得所需的所有信息(它在 SVN 中的位置等)。所以你必须在每个项目中都有 scm 块。
  • 对你们所有的 khmarbaise、@carlspring 和 wemu 进行打击 .. 这解决了它。尽管我阅读了手册,但仍然犯了没有正确放置 URL 的愚蠢错误……非常感谢。只是想知道为什么我浪费了 2 天的时间来敲打这个 :)
  • 现在您知道为什么最好还是拥有它。以这种方式想象——没有时间被浪费,除非你在那段时间根本没有学到任何东西。 :D
猜你喜欢
  • 2013-09-06
  • 1970-01-01
  • 2012-06-12
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 2019-05-22
  • 1970-01-01
相关资源
最近更新 更多