如何在Artifactory和Jenkins管道脚本中发布Maven项目

时间:2019-02-21 09:55:30

标签: groovy jenkins-pipeline artifactory

我有一个Maven SpringBoot项目。我想将其推送到云铸造厂。为此,我为詹金斯编写了一个时髦的管道脚本。 我要补充什么?在脚本和/或pom.xml中将其发布到Artifactory中,以便Jenkins将代码从Git中提取并发布到Artifactory中。在另一个环境中,我将提取工件版本的JAR并将其推送到Cloud Foundry。

假设我项目的groupId为com.example,工件ID为​​XYZ,版本为1.0-SNAPSHOT。

2 个答案:

答案 0 :(得分:0)

因此,为了清楚起见,您不会将代码发布给Artifactory,而是将发布管道中Maven步骤所产生的工件。您可以从Maven(Maven部署或Maven发行版:准备发行:执行)中直接执行此操作,前提是您已设置Maven配置以正确地与目标Artifactory服务器进行身份验证。

您还可以使用Artifactory插件,该插件提供了完成此操作的步骤:

https://jenkins.io/doc/pipeline/steps/artifactory/

最后,您可以在当前管道的另一阶段或在“部署”管道中使用Cloud Foundry插件,以将工件部署到Cloud Foundry实例。

https://jenkins.io/doc/pipeline/steps/cloudfoundry/

答案 1 :(得分:0)

如果您正在使用gitlab并谈论jenkins管道脚本,则必须创建一个管道作业。下面是您可以增强的示例groovy脚本。

 node {

    stage ("Checkout"){
        checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'LocalBranch', localBranch: 'master']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'your_git_cred', url: 'your_gitlab_url']]]   
    }

    stage ("Build and Push to Artifactory"){
       tool name: 'Maven3.0', type: 'maven'
       sh "mvn clean deploy"
    }  
}

在pom中,您必须在分发管理中添加工件位置

<distributionManagement>
        <repository>
            <id>artifactory</id>
            <url>your_artifactory_url</url>
        </repository>
        <snapshotRepository>
            <id>artifactory</id>
            <url>your_artifactory_url</url>
        </snapshotRepository>
    </distributionManagement>

有关jenkins -pipline的更多信息 https://jenkins.io/doc/book/pipeline/