我正在使用 Gradle 和 Jenkins,并且想要将 Artifactory 部署到 Artifactory。不幸的是,当我在 Jenkins 中开始构建时,此部署仅有效一次。
如果我删除 Jenkins 服务器上的工作区和 ~/.gradle 文件夹,部署将再次正常工作。仅删除工作区是不够的。
对我来说似乎是一个错误。我是否有任何未知的版本冲突。或者是我没有看到的不同之处。感谢您的帮助。
环境:
- Jenkins 2.7.3
- Gradle 3.1
- Artifactory 4.13.0
- Jenkins Artifactory 插件 2.7.2
Gradle 构建脚本:(基于 jfrog 的示例)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '4.4.5')
}
}
allprojects {
apply plugin: 'java'
apply plugin: 'maven-publish'
repositories {
jcenter()
}
group = 'org.jfrog.example.gradle'
version = '1.0.1-SNAPSHOT'
status = 'integration'
}
artifactory {
publish {
defaults {
publishConfigs('archives')
}
}
}
// Setting this property to true will make the artifactoryPublish task
// skip this module (in our case, the root module):
artifactoryPublish.skip = true
Jenkins Artifactory 插件设置:
- [x] Gradle-Artifactory-集成
- [x] 捕获并发布构建信息
- [x] 将 Artifactory 发布到 Artifactory
- [x] 发布 Maven 描述符
- [x] 使用 Maven 兼容模式
休息已停用(未设置)。
登录 Jenkins(控制台输出),第二次运行时更改版本和更改源代码:
Jenkins Artifactory Plugin version: 2.7.2
[Gradle] - Launching build.
[CdExampleArtifactory] $ cmd.exe /C '""C:\Program Files (x86)\Jenkins\tools\gradle-3.1\bin\gradle.bat"' --init-script c:/temp/init-artifactory8368571638486556211gradle artifactoryPublish && exit %%ERRORLEVEL%%"
:artifactoryPublish
:api:artifactoryPublish
:services:artifactoryPublish
:shared:artifactoryPublish
:services:webservice:artifactoryPublish
BUILD SUCCESSFUL
Total time: 2.422 secs
Build step 'Invoke Gradle script' changed build result to SUCCESS
Finished: SUCCESS
看起来任务没有启动构建(jar 等)过程。
最佳答案
使用最新的 Gradle Artifactory Plugin 4.4.7 版本解决了与 Gradle 3.1 的兼容性问题。
Gradle 构建片段:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '4.4.7')
}
}
记下版本。
关于 Jenkins + Gradle + Artifactory : Deploy only work once,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39962709/