使用maven-deploy进行自由式项目

时间:2016-08-15 02:30:00

标签: maven jenkins-job-builder

我正在将现有的maven项目转换为自由式项目,其中部署到存储库的构建后步骤仅用于maven项目。

使用自由式项目类型实现以下内容的等价物。有没有办法直接使用mvn deploy作为构建后步骤将构建结束时的工件推送到工件服务器(nexus)?

现在,例如,当您使用JJB运行以下示例时,您可以看到作业已更新,但是Deploy Artifacts to maven repository显示为自由式项目类型,但无法按预期工作,因为它仅用于maven项目类型。

- job:
    name: test-freestyle
    project-type: freestyle
    description: 'example for freestyle'
    builders:
        - shell: |
            echo 'Hello world'
            cat /etc/passwd
    publishers:
        - maven-deploy:
            id: example
            url: http://repo.example.com/maven2/
            unique-version: true
            deploy-unstable: false
            release-env-var: TIMER

1 个答案:

答案 0 :(得分:0)

我找到的工作解决方案是在构建器部分下使用- maven-target,如下所示:

- job:
    name: test-freestyle
    project-type: freestyle
    description: 'example for freestyle'
    builders:
        - shell: |
            echo 'Hello world'
            cat /etc/passwd
        - maven-target:
            maven-version: '{mvn33}'
            pom: pom.xml'
            goals: 'clean install deploy -DdeployAtEnd=true ...'
            settings: '{mvn-settings}'

注意:在使用DeployAtEnd选项时,发现maven deploy插件有一些issue上传工件,在这种情况下,简单地使用deploy而没有选项。