在Jenkins(2.7)中,我有一个简单的Maven 3 Java项目。它使用Jenkins Artifactory插件构建标准项目JAR并将其发布到Artifactory;没有问题。
目标
现在,我需要在JAR旁边向Artifactory发布一个任意文件deploycfg.yml
;不在里面。因此,从存储库的角度来看,它应该如下所示:
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
,然后在Jenkins Artifactory插件中为Include Patterns
尝试了不同的配置来获取要发布的文件:
*.jar *.yml
**/*.jar **/*.yml
*.jar deploycfg.yml
JAR发布到Artifactory,但不是deploycfg.yml
。尝试将yml文件放在/target/maven-archiver
而不是/target
中,但这也不起作用。不知道此时还有什么可做,也许Include Patterns
的起点不是我认为的那样,/target
?
答案 0 :(得分:1)
我能够使用Pipeline 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的同一问题。我很好奇,你最终搞清楚了吗?