使用属性从Maven部署到JFrog Artifactory

dice2011

我有一个詹金斯(Jenkins)工作,它具有REPOSITORY和BRANCH输入变量,并使用Invoke顶级Maven目标插件。它使Maven干净地部署到jfrog工件。

但是有一个问题:我不知道如何将属性发送到已部署的工件。我指的是JFROG ARTIFACTORY中具有的以下属性:在此处输入图片说明

我知道,有一个Maven3-Artifactory Integration插件可以通过属性进行部署,但是在我的情况下不起作用,因为我的工作应该是针对不同工件服务器的常规工作。

我还在Invoke顶级Maven目标中找到了一个Properties属性但是它什么都不做(已部署工件的属性列表仍然为空) 在此处输入图片说明

我如何通过maven调用顶级Maven目标插件将属性发送到JFROG ARTIFACTORY 提前致谢。

德罗·别列兹尼茨基

考虑到您需要动态控制要部署的目标存储库,您有多种选择:

1)使用Artifactory Jenkins插件管道支持管道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插件,该插件可让您从pom.xml定义分辨率/部署和属性。您还可以利用环境变量或系统属性以动态方式定义它们。例如:

<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回答的那样,您可以在存储库URL中使用矩阵参数来定义属性

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章