簡體   English   中英

使用 Artifactory 插件“包含模式”從 Jenkins 發布項目文件

[英]Publish project files from Jenkins using Artifactory plugin "Include Patterns"

在 Jenkins (2.7) 中,我有一個簡單的 Maven 3 Java 項目。 它使用Jenkins Artifactory插件構建並發布標准項目JAR到Artifactory; 沒有問題。

目標

現在,我需要將任意文件deploycfg.yml與 JAR 一起發布到 Artifactory; 不在其中。 所以從存儲庫的角度來看,它應該是這樣的:

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

在此處輸入圖片說明

在此處輸入圖片說明

我能夠使用 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 時遇到的相同問題。 我很好奇,你最后弄明白了嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM