使用 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 合同发布到协议流时出现未经授权的错误的主要内容,如果未能解决你的问题,请参考以下文章