2016-09-15 70 views
1

在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

enter image description here

enter image description here

回答

1

我能夠做到這一點使用管道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的相同問題。我很好奇,你最終搞清楚了嗎?

+0

嘗試使用**將工件部署到Maven資源庫**後期構建操作,而不是Artifactory插件。 – raffian

+0

我對如何實現這一點仍然無能爲力!你可以讓我們知道你是如何解決它的。 – Ramesh

+0

我結束了使用管道腳本。 –

相關問題