1

我正在尝试使用 maven 发布一个组件。这是项目结构:

root-
    A-project/pom.xml
    B-project/pom.xml
    C-project/pom.xml
    D-project/pom.xml

在这里,我们ssh://userID@gerritforge.lmera.companyName.se:29418/root最多root只有 ssh URL。所以我们在每个项目中添加以下代码行来给出相对路径。

<pomFileName>A-project/pom.xml</pomFileName>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <executions>
        <execution>
            <id>default</id>
            <goals>
                <goal>perform</goal>
            </goals>
            <configuration>
                <pomFileName>A-project/pom.xml</pomFileName>
                <!--
                <pushChanges>false</pushChanges>
                -->
                <autoVersionSubmodules>true</autoVersionSubmodules>
            </configuration>
        </execution>
    </executions>
    <!--
    <configuration>
        <autoVersionSubmodules>true</autoVersionSubmodules>
    </configuration>
    -->
</plugin>

在运行mvn release:prepare项目时正在成功构建,但在此之后我收到以下错误:

[ERROR] BUILD FAILURE
[INFO] Unable to tag SCM
Provider message:
The git-push command failed.
Command output:
To ssh://userID@gerritforge.lmera.companyName.se:29418/root
 ! [remote rejected] A-prject-template-1.1.12 -> A-prject-template-1.1.12 \
 (prohibited by Gerrit) error: failed to push some refs to \
 'ssh://userID@gerritforge.lmera.companyName.se:29418/root'

在执行之前,本地和远程不存在任何标签mvn release:prepare

4

1 回答 1

1

我在 Jenkins 上使用 Git 的 maven-release-plugin 遇到了同样的 Gerrit 失败。

  • 推送 pom.xml -> Gerrit 成功
  • 本地标签成功
  • 推送标签 -> Gerrit FAIL “...(Gerrit 禁止)”

解决方案:Gerrit 权限“伪造提交者”,请参阅https://gerrit-review.googlesource.com/Documentation/error-prohibited-by-gerrit.html

原因:创建标签的 Jenkins 用户 ID 与推送到 Gerrit 的用户 ID 不同。

于 2014-11-17T21:08:31.537 回答