2017-06-04 25 views
2

JFrog Artifactory的我有詹金斯工作,具有存儲庫和BRANCH輸入變量和使用 調用頂級的Maven目標插件。它使maven乾淨部署到jfrog artifactory。部署從Maven來與特性

但是有一個問題:我不知道,如何將屬性發送到已部署的工件。我的意思是像這些特性,我們在JFROG artifactory的: enter image description here

我知道,有Maven3-Artifactory的集成插件,它與性能的部署,但它並不在我的情況下工作,因爲我的工作應該是通用的不同的artifactory服務器。

我也發現參數屬性調用頂級的Maven目標 enter image description here 但不起任何作用(部署的工件的屬性列表仍是空的)

我如何發送屬性JFROG ARTIFACTORY by maven 調用頂級Maven目標插件?提前致謝。

+0

具有不同工件儲存器從我的觀點,但不同artifactory的服務器聲音意義錯誤...? – khmarbaise

+0

在我的情況下,我可以同時擁有不同的工件存儲庫和artifactory服務器。根據項目的pom.xml,工件可以部署到不同的服務器上。 –

+0

爲什麼不使用Jenkins Artifactory插件? https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin – Ariel

回答

2

考慮到你有要求,動態地控制目標庫中進行部署,你有多個選項:

1)使用Artifactory Jenkins插件的pipeline support。管道DSL允許你動態地控制你正在使用Maven分辨率/部署的存儲庫,例如:

def rtMaven = Artifactory.newMavenBuild() 
rtMaven.resolver server: server, releaseRepo: 'libs-release', snapshotRepo: 'libs-snapshot' 
rtMaven.deployer server: server, releaseRepo: 'libs-release-local', snapshotRepo: 'libs-snapshot-local' 

並添加屬性:

rtMaven.deployer.addProperty("status", "in-qa").addProperty("compatibility", "1", "2", "3") 

2)使用Artifactory Maven plugin它允許您定義來自pom.xml的解析/部署和屬性。您還可以利用environment variables or system properties以動態方式定義這些。 例如:

<build> 
    <plugins> 
     ... 
     <plugin> 
      <groupId>org.jfrog.buildinfo</groupId> 
      <artifactId>artifactory-maven-plugin</artifactId> 
      <version>2.6.1</version> 
      <inherited>false</inherited> 
      <executions> 
       <execution> 
        <id>build-info</id> 
        <goals> 
         <goal>publish</goal> 
        </goals> 
        <configuration> 
         <deployProperties> 
          <build.name>{{BUILD_NAME}}</build.name> 
         </deployProperties> 
         <publisher> 
          <contextUrl>https://artifactory.mycompany.com</contextUrl> 
          <username>deployer</username> 
          <password>******</password> 
          <repoKey>{{RELEASE_REPO}}</repoKey> 
          <snapshotRepoKey>{{SNAPSHOT_REPO}}</snapshotRepoKey> 
         </publisher> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

3)通過@viniciusartur已經回答了,你可以使用matrix parameters存儲庫中的URL定義屬性

0

您可以使用Matrix Properties在部署上分配JFrog Artifactory屬性。

您只需將「; property1 =值; property2 =數值」你的發行版的網址,如:

<distributionManagement> 
    <repository> 
     <id>myrepo</id> 
     <url>http://localhost:8080/artifactory/libs-release-local;property1=value1;property2=value2</url> 
    </repository> 
</distributionManagement>