Jenkins + Gradle + Artifacts:部署只工作一次
Jenkins + Gradle + Artifacts: Deploy only work once
我正在使用 Gradle 和 Jenkins,并且想将工件部署到 Artifactory。不幸的是,当我在 Jenkins 中开始构建时,此部署只工作一次。
如果我删除 Jenkins 服务器上的工作区和 ~/.gradle 文件夹,部署将再次运行。仅删除工作区是不够的。
对我来说似乎是个错误。我是否有任何未知的版本冲突。或者是我看不到的不同之处。感谢您的帮助。
环境:
- 詹金斯 2.7.3
- Gradle3.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
- [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 等)过程。
我找到了解决问题的方法。
我必须停用 jenkins 服务器上的 gradle 守护进程(通过 GRADLE_OPTS)。
使用最新的 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')
}
}
注意版本。
我正在使用 Gradle 和 Jenkins,并且想将工件部署到 Artifactory。不幸的是,当我在 Jenkins 中开始构建时,此部署只工作一次。
如果我删除 Jenkins 服务器上的工作区和 ~/.gradle 文件夹,部署将再次运行。仅删除工作区是不够的。
对我来说似乎是个错误。我是否有任何未知的版本冲突。或者是我看不到的不同之处。感谢您的帮助。
环境:
- 詹金斯 2.7.3
- Gradle3.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
- [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 等)过程。
我找到了解决问题的方法。
我必须停用 jenkins 服务器上的 gradle 守护进程(通过 GRADLE_OPTS)。
使用最新的 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')
}
}
注意版本。