从Bamboo

时间:2016-05-20 17:43:22

标签: maven svn release bamboo

我们已经遇到过这个问题了几次:

标记文件夹不包含为发布而修改的主干版本,而是在进行任何修改之前包含主干的副本,并且它还包含一个' trunk'子文件夹,其中包含正确的修改版本。

因此,如果我在发布之前在我的SVN回购中有这个:

  • PROJECTNAME
    • trunk(pom.xml中的版本是1.0.0-SNAPHOT)
    • 标记

通常,在发布1.0.0版之后我会有以下内容:

  • PROJECTNAME
    • trunk(pom.xml中的版本为1.1.0-SNAPSHOT)
    • 标记
      • 1.0.0(pom.xml中的版本是1.0.0)

然而,很少次,我结束了:

  • PROJECTNAME
    • trunk(pom.xml中的版本为1.1.0-SNAPSHOT)
    • 标记
      • 1.0.0(pom.xml中的版本是1.0.0-SNAPSHOT)
        • trunk(pom.xml中的版本是1.0.0)

' scm'发布之前在pom.xml中标记似乎是正确的,所以我不认为是否来自那里:

<scm>
  <url>http://.../projectName/trunk</url>
  <connection>scm:svn:http://.../projectName/trunk</connection>
  <developerConnection>scm:svn:http://.../projectName/trunk</developerConnection>
</scm>

My Bamboo计划由以下任务组成:

  1. 源代码检出(使用强制清除构建)
  2. 脚本(确定发布版本)
  3. Maven 3.x(实际发布)
  4. My Maven 3.x任务有以下目标:

      

    - batch-mode -Dusername = $ {bamboo.username} -Dpassword = $ {bamboo.password} -Dtag = $ {bamboo.version} release:prepare -DreleaseVersion = $ {bamboo.version} -DdevelopmentVersion = $ {bamboo.nextVersion} -SNAPSHOT -Dresume = false release:perform

    该插件没有选项:

    <plugin>
      <artifactId>maven-release-plugin</artifactId>
      <version>2.4.1</version>
    </plugin>
    

    签入日志后,我看不出有什么异常可以确定原因。

    [LOG] Checking in modified POMs...
    [LOG] Executing: /bin/sh -c cd .../build-dir/PROJECT-PLAN-JOB && svn --username user --password '*****' --no-auth-cache --non-interactive commit --file .../temp/PROJECT-PLAN-JOB/maven-scm-386932260.commit --targets .../temp/PROJECT-PLAN-JOB/maven-scm-7155492065832691877-targets
    [LOG] Working directory: .../build-dir/PROJECT-PLAN-JOB
    [LOG] Tagging release with the label 1.0.0...
    [LOG] Executing: /bin/sh -c cd .../build-dir/PROJECT-PLAN-JOB && svn --username user --password '*****' --no-auth-cache --non-interactive copy --file .../temp/PROJECT-PLAN-JOB/maven-scm-80256020.commit --revision 46345 http://.../projectName/trunk http://.../projectName/tags/1.0.0
    [LOG] Working directory: .../build-dir/PROJECT-PLAN-JOB
    [LOG] Transforming 'projectName'...
    [LOG] Not removing release POMs
    [LOG] Checking in modified POMs...
    [LOG] Executing: /bin/sh -c cd .../build-dir/PROJECT-PLAN-JOB && svn --username user --password '*****' --no-auth-cache --non-interactive commit --file .../temp/PROJECT-PLAN-JOB/maven-scm-1254735614.commit --targets .../temp/PROJECT-PLAN-JOB/maven-scm-2179675177497779390-targets
    [LOG] Working directory: .../build-dir/PROJECT-PLAN-JOB
    [LOG] Release preparation complete.
    [LOG] 
    [LOG] --- maven-release-plugin:2.4.1:perform (default-cli) @ projectName ---
    [LOG] Checking out the project to perform the release ...
    [LOG] Executing: /bin/sh -c cd .../build-dir/PROJECT-PLAN-JOB/target && svn --username user --password '*****' --no-auth-cache --non-interactive checkout http://.../projectName/tags/1.0.0 .../build-dir/PROJECT-PLAN-JOB/target/checkout
    [LOG] Working directory: .../build-dir/PROJECT-PLAN-JOB/target
    [LOG] Invoking perform goals in directory .../build-dir/PROJECT-PLAN-JOB/target/checkout
    [LOG] Executing goals 'deploy'...
    

    从日志中看到的内容,执行是:

    1. 修改了pom中的版本以删除-SNAPSHOT(1.0.0)
    2. 这个pom是在后备箱中提交的
    3. 主干的内容被复制到标签1.0.0
    4. pom中的版本被修改为下一个版本(1.1.0-SNAPSHOT)
    5. 这个pom是在后备箱中提交的
    6. 标签1.0.0的内容在文件夹/ target / checkout /
    7. 中签出
    8. 发布在/ target / checkout /
    9. 上完成

      知道为什么SVN repo中的1.0.0标签文件夹包含另一个&#39; trunk&#39;子文件夹在那里?

1 个答案:

答案 0 :(得分:1)

经过调查,我发现这是因为maven-release-plugin而与Bamboo无关。事实上,只要您尝试发布已经发布的版本,就会发生这种情况。

这是插件的“正常”行为。