使用 jenkins 将 java 合同发布到协议流时出现未经授权的错误

Posted

技术标签:

【中文标题】使用 jenkins 将 java 合同发布到协议流时出现未经授权的错误【英文标题】:Unauthorised error when publishing java contract to pact flow using jenkins 【发布时间】:2021-12-26 15:10:15 【问题描述】:

我有一个合同,我们可以在运行 mvn pact:publish -Dpactbroker.auth.token=myToken 时将其发布到 pact flow broker。但是,当从 Jenkins 运行它时,相同的合同和 maven 命令会给我们一个身份验证错误。不确定接下来的步骤会出现什么问题,并且合同验证是否成功并使用相同的令牌。

这是我们正在使用的版本:

<pact.version>4.2.14</pact.version>
<pact.plugin.version>4.0.10</pact.plugin.version>
<maven.surefire.version>3.0.0-M5</maven.surefire.version>

这里是我们的詹金斯文件

node 
def git_commit
def mvnHome = tool name: 'maven3.6.0'

stage(name: 'Checkout') 
    git credentialsId: ‘someCredentials’, url: “my.git", branch: "$branch_name"
    sh "git rev-parse HEAD > commit"
    git_commit = readFile('commit').trim()


stage(name: 'Compile') 
   sh "$mvnHome/bin/mvn clean package -DskipTests"


stage(name: 'Pact Generate Contracts') 
   sh "$mvnHome/bin/mvn -Dtest=com.hmhco.viaductservice.pact.consumer.*Test test"


stage(name: 'Pact Publish Contracts Tests') 
   sh "$mvnHome/bin/mvn pact:publish -Dpactbroker.auth.token=myToken”


stage(name: 'Pact Verify Tests') 
   sh "$mvnHome/bin/mvn -Dpactbroker.auth.token=myToken -Dtest=com.hmhco.viaductservice.pact.provider.*Test test"

  

【问题讨论】:

【参考方案1】:

它现在正在工作。 由于发布步骤来自 maven pact jvm 插件,我们需要通过将这一行添加到插件来为其添加获取令牌的方法。

<pactBrokerUrl>https://hmhco.pact.dius.com.au/</pactBrokerUrl>

现在我们有了

<plugin>
    <groupId>au.com.dius</groupId>
    <artifactId>pact-jvm-provider-maven</artifactId>
    <version>$pact.plugin.version</version>
        <configuration>
            <pactDirectory>target/pacts</pactDirectory>
            <pactBrokerUrl>https://hmhco.pact.dius.com.au/</pactBrokerUrl>
            <!--suppress UnresolvedMavenProperty -->
            <pactBrokerToken>$pactbroker.auth.token</pactBrokerToken>
            <projectVersion>$project.version</projectVersion>
            <trimSnapshot>true</trimSnapshot>
        </configuration>
</plugin>

【讨论】:

以上是关于使用 jenkins 将 java 合同发布到协议流时出现未经授权的错误的主要内容,如果未能解决你的问题,请参考以下文章

合同协议书

OSPF和RIP协议的区别

如何用TWAIN协议实现双面扫描

http-tcpip协议

怎么把java自动化代码提交到jenkins

合同协议书