Maven jgitflow插件

时间:2016-01-19 13:09:01

标签: maven jenkins hudson jgitflow-maven-plugin

我不知道你们是否有人使用maven插件jgitflow。 在跑步时

clean jgitflow:release-start jgitflow:release-finish

在哈德森上,我收到以下错误:

  

org.apache.maven.lifecycle.LifecycleExecutionException:失败       执行目标external.atlassian.jgitflow:jgitflow-maven-plugin:1.0-m5.1:release-start       项目test-git-release上的(default-cli):目标的执行default-cli       external.atlassian.jgitflow:jgitflow - Maven的插件:1.0-M5.1:释放启动       失败:字符串索引超出范围:-6

我的pom.xml如下所示:

<plugin>
 <groupid>external.atlassian.jgitflow</groupid>
 <artifactid>jgitflow-maven-plugin</artifactid>
 <version>1.0-m5.1</version>
  <configuration>
   <enablesshagent>true</enablesshagent>
   <defaultoriginurl>URL</defaultoriginurl> 
   <autoversionsubmodules>true</autoversionsubmodules>  
   <nodeploy>true</nodeploy>    
   <pushreleases>true</pushreleases>
    <flowinitcontext>
     <versiontagprefix>V_</versiontagprefix>
    </flowinitcontext>
 </configuration>
</plugin>

在我的本地计算机上,我可以成功运行此命令。

2 个答案:

答案 0 :(得分:1)

Apparently是一个已知的错误:official bug report,对于您提到的相同版本和相同的行为(在本地工作正常,但在Jenkins / Hudson上也是如此)。

请注意,上面链接的错误报告提供了一个可能值得尝试的解决方法:

  

解决方法是在Jenkins:   附加行为   =&GT;结账到特定的当地分行

<强>更新
根据交换的意见,提出的解决方案和有效的解决方案,这里是未来帮助的历史记录:

  • 按照上面建议的解决方法并将本地分支设置为从origin / develop签出,遇到以下错误:
    error occurred during unpacking on the remote end: unpack-objects abnormal exit
  • 这样的错误实际上是由于相关文件夹的权限,以及其他SO主题herehere的建议。但是,之后更改权限没有帮助。
  • 最终通过在服务器上创建.git存储库来解决问题。这样做使该文件夹的组具有与所有者相同的权限。

答案 1 :(得分:0)

与GitLab合作并遇到此问题的所有人员节省了一点时间:

GitLab的Runner在DETACHED HEAD上工作,这会导致JGitFlow的GIT引用搜索失败,从而导致此错误。

解决方案与Jenkins相同:在执行JGitFlow操作之前,请先进行结帐。对于GitLab,您可以通过在gitlab-ci.yml各自管道的/ script部分中添加git checkout来实现,例如:

sample-pipeline:
   stage: release
   script: 
   -git checkout -B master
   -mvn --batch-mode jgitflow:release-start jgitflow:release-finish

由于JGitFlow会自动检出developer分支并从那里进行魔术处理,因此您始终可以事先检出master,因为它根本没有效果。重要的是,当GitLab开始搜索引用时,它不是DETACHED HEAD。