使用Artifactory插件“包含模式”发布Jenkins项目文件
问题描述:
在Jenkins(2.7)中,我有一个简单的Maven 3 Java项目。它使用Jenkins Artifactory插件构建并发布标准项目JAR给Artifactory;没有问题。使用Artifactory插件“包含模式”发布Jenkins项目文件
目标
现在,我需要发布到artifactory的任意文件,deploycfg.yml
,旁边的JAR;不在其中。所以从一个存储库的角度来看,它应该是这样的:
com/acme/sbgroov/1.0.0.7/
-- sbgroov-1.0.0.7.jar
-- sbgroov-1.0.0.7.md5
-- sbgroov-1.0.0.7.sha
-- deploycfg.yml <---publish this to Artifactory too!
试图
我已经修改了POM移动deploycfg.yml
到/target
在建筑,然后在詹金斯Artifactory的尝试不同的配置Include Patterns
插件拿起文件发布:
*.jar *.yml
**/*.jar **/*.yml
*.jar deploycfg.yml
的JAR被发布到artifactory的,但不是deploycfg.yml
。试过把yml文件放在/target/maven-archiver
而不是/target
,但那也没用。不知道此时还有什么可以做的,或许Include Patterns
的起点不是我认为的那样,/target
?
答
我能够做到这一点使用管道Groovy脚本。
println "Uploading artifacts to Artifactory. Upload target is: ${uploadTarget}"
def server = Artifactory.server 'artifactory'
def uploadSpec = """{
"files": [
{
"pattern": "target/${pom.artifactId}-${pom.version}.jar",
"target": "${uploadTarget}/${pom.artifactId}-${pom.version}.jar"
},
{
"pattern": "target/${pom.artifactId}-${pom.version}.war",
"target": "${uploadTarget}/${pom.artifactId}-${pom.version}.war"
},
{
"pattern": "manifest.yml",
"target": "${uploadTarget}/manifest.yml"
}
]
}"""
def buildInfo = server.upload(uploadSpec)
// Publish build information.
buildInfo.env.capture = true
server.publishBuildInfo(buildInfo)
但是,我碰到了在Jenkins中使用传统Artifactory插件UI的相同问题。我很好奇,你最终搞清楚了吗?
尝试使用**将工件部署到Maven资源库**后期构建操作,而不是Artifactory插件。 – raffian
我对如何实现这一点仍然无能为力!你可以让我们知道你是如何解决它的。 – Ramesh
我结束了使用管道脚本。 –