我不知道你们中是否有人使用maven插件jgitflow。跑步时
clean jgitflow:release-start jgitflow:release-finish在hudson上,我得到以下错误:
org.apache.maven.lifecycle.LifecycleExecutionException:未能在项目测试-git-释放:执行默认-cli目标external.atlassian.jgitflow:jgitflow-maven-plugin:1.0-m5.1:release-start失败:字符串索引超出范围:-6的范围内执行目标external.atlassian.jgitflow:jgitflow-maven-plugin:1.0-m5.1:release-start (默认-cli)
我的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>在我的本地机器上,我能够成功地运行这个命令。
发布于 2016-01-19 13:20:27
发布于 2018-10-31 13:07:55
为所有使用GitLab并体验到此问题的人员提供一点时间保护:
GitLab的Runner工作在一个分离的头上,这会导致JGitFlow搜索GIT失败,从而导致这个错误。
解决方案与Jenkins一样:在执行JGitFlow操作之前,先签出。对于GitLab,可以通过在gitlab-ci.yml各自管道的/script部分添加git签出来实现这一点,例如:
sample-pipeline:
stage: release
script:
-git checkout -B master
-mvn --batch-mode jgitflow:release-start jgitflow:release-finish由于JGitFlow自动检查开发分支并从那里执行它的魔术,所以您始终可以预先检查主服务器,因为它根本没有任何作用;在GitLab开始搜索参考信息时,它不应该是一个独立的头。
https://stackoverflow.com/questions/34877653
复制相似问题