我正在尝试使用Jenkins的ArtFactory插件来运行Maven构建并将buildInfo发布到我的ArtFactory实例。所有这些都是在Jenkinsfile中编写脚本并作为管道构建执行的。代码如下:
def server
def buildInfo
def rtMaven
server = Artifactory.server('arty')
rtMaven = Artifactory.newMavenBuild()
rtMaven.tool = 'Maven 3.3.9' // Tool name from Jenkins configuration
rtMaven.deployer releaseRepo: 'ci-test', snapshotRepo: 'ci-test', server: server
rtMaven.resolver releaseRepo: 'libs-release', snapshotRepo: 'libs-snapshot', server: server
rtMaven.deployer.deployArtifacts = false // Disable artifacts deployment during Maven run
buildInfo = Artifactory.newBuildInfo()
rtMaven.run pom: 'pom.xml', goals: "-e -B install".toString(), buildInfo: buildInfo
server.publishBuildInfo buildInfo
这将导致许多错误,如下所示
[主要]错误 org.apache.maven.cli.MavenCli - Plugin org.apache.maven.plugins:maven-install-plugin:2.4 或其依赖项之一无法解析: 无法读取 org.apache.maven.plugins:maven-install-plugin:jar:2.4: 无法将 artifact org.apache.maven.plugins:maven-plugins:pom:23 从/到 artifactory-release (https://arty.example.com:8443/artifactory/libs-release): 未授权 , 原因短语: 未经授权。-
只有当我切换到使用Artifactory插件时,错误才会开始。
在尝试之前,我确认了Maven在Jenkins中的配置是正确的。
withMaven(maven: 'Maven 3.3.9') {
sh "mvn -e -B ${args}"
}
执行mvn部署
将把war文件向上推送到artiFactory。
我怀疑这与我的Maven设置有关。我已经验证了Maven作为Jenkins工具工作正常。我可以提供设置。.m2文件夹中的xml,或通过Jenkins的配置文件,类似于:
withMaven(maven: 'Maven 3.3.9', mavenSettingsConfig: '10452c41-5bdb-4d11-b711-9b2d00751c2e')
这两个选项都有效(如果我删除它们,会导致预期的失败)。
我注意到的是,Artifactory Plugin允许我指定Jenkins Tool(Maven 3.3.9
)的名称,但不能指定mavenSettingsConfig的名称。为此,我还尝试将对 rtMaven.run
的调用包装在 configFileProvider 块中,并将设置传递给 mvn:
configFileProvider(
[configFile(fileId: '10452c41-5bdb-4d11-b711-9b2d00751c2e', variable: 'MAVEN_SETTINGS')]) {
rtMaven.run pom: 'pom.xml', goals: "-s $MAVEN_SETTINGS -e -B install".toString(), buildInfo: buildInfo
server.publishBuildInfo buildInfo
}
这也被证明是不成功的。
在这一点上,任何建议都将是有益的!
版本信息:< br > Jenkins:2 . 89 . 3 < br > Jenkins Artifactory插件:2 . 13 . 1 < br > Maven:3 . 3 . 9 < br > Artifactory:5 . 8 . 3 Pro
settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<localRepository>/home/jenkins-user/.m2/repository</localRepository>
<servers>
<server>
<username>artyuser</username>
<password>ARTYPASSHASH</password>
<id>central</id>
</server>
<server>
<username>artyuser</username>
<password>ARTYPASSHASH</password>
<id>snapshots</id>
</server>
<server>
<username>artyuser</username>
<password>ARTYPASSHASH</password>
<id>arty</id>
</server>
</servers>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>https://arty.example.com:8443/artifactory/libs-release</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>https://arty.example.com:8443/artifactory/libs-snapshot</url>
</repository>
<repository>
<snapshots />
<id>arty</id>
<name>ci-test</name>
<url>https://arty.example.com:8443/artifactory/ci-test</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>plugins-release</name>
<url>https://arty.example.com:8443/artifactory/plugins-release</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>plugins-snapshot</name>
<url>https://arty.example.com:8443/artifactory/plugins-snapshot</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>
在这种情况下,您在Jenkins配置配置系统中指定了Artifactory服务器“arty”。在那里,您还需要添加凭证。
如果您不想使用 Jenkins 配置,可以对管道中的所有信息进行硬编码 def 服务器 = Artifactory.newServer url: 'artifactory-url', 用户名: 'username', password: 'password'
或者从Jenkins凭据def server=Artifactory.newServerurl:'artiface-url',凭据ID:'凭据'
问题内容: 我从Nexus存储库中检出了代码。我更改了帐户密码,并在文件中正确设置了密码。在执行时,我收到错误消息,说明它尝试从该存储库下载文件。 任何想法如何解决此错误?我在Maven 3.04中使用Windows 7 问题答案: 这里的问题是所使用的密码出现错字错误,由于密码中使用了字符/字母,因此很难识别。
我试图通过Java Apachebeam MongoDbIO连接器连接到MongoDB,得到一个“未授权”错误。 同样的连接细节也适用于Python并能够检索数据。 “org.apache.beam.sdk.io.mongodbo.mongodbio$boundedmongodbsource.$closeresource(Mongodbio.java:407)位于org.apache.beam.s
我的代码:GoogleCredential凭据 credential.refreshToken() 错误日志: 创建服务号的步骤: 我在凭据中的oauth 2.0中创建了一个Web应用程序 然后我用客户端ID创建了一个服务号 现在我正在使用这个服务号和从它生成的p12证书来验证和创建Google凭据的对象 一旦刷新令牌,我就给了我401例外。 在这种情况下,任何帮助都会受到感激
我试图测试Firebase Cloud messaging APIs,因为控制台没有提供所有功能(特别是当应用程序在后台时定制通知)。但由于某些原因,我无法让它工作,它总是显示401错误。我调查了出现这种情况的原因,并在重新生成新的服务器密钥后进行了尝试,但错误仍然存在。令人惊讶的是,当我生成一个新的服务器密钥时,它没有反映在Firebase控制台中,它将服务器密钥显示为空。此外,我尝试添加我的I
我是Spring boot和Spring Security的新手,出现以下错误: “错误401未经授权(c.e.l.security.jwt.AuthEntryPointJwt:未经授权的错误:访问此资源需要完全身份验证)” 我试过这个认证 我的问题是,当我成功登录时,我想请求获取用户列表。我发送的请求是一个安全GET请求,它是http://localhost:8084/loginsystem/a