通过Maven命令行部署快照和发布

时间:2018-09-26 07:35:07

标签: maven deployment artifactory maven-deploy-plugin

我想在CI / CD管道中部署项目而不使用pom内的distributionManagement块,这看起来像这样:

<distributionManagement>
    <repository>
        <id>central</id>
        <name>x-releases</name>
        <url>http://serverhostname/artifactory/libs-release-local</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <name>x-snapshots</name>
        <url>serverhostname/artifactory/libs-snapshot-local</url>
    </snapshotRepository>
</distributionManagement>

我尝试通过命令行指定存储库:

-DaltSnapshotDeploymentRepository=myserver::default::serverhostname/artifactory/libs-snapshot-local \
-DaltReleaseDeploymentRepository=myserver::default::serverhostname/artifactory/artifactory/libs-release-loca

但是失败了

Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter

指定-DaltDeploymentRepository允许我将工件部署到存储库,但是我不确定如何在SNAPSHOT和RELEASE之间进行区分。我以为maven可以自动进行此操作。

哪些命令行选项可用于替换此distributionManagement块?

1 个答案:

答案 0 :(得分:0)

检查您的maven-deploy-plugin版本。

我使用的是2.7版,但遇到相同的错误,但升级到2.8.2,构建成功完成。

这是依赖项:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.8.2</version>
</plugin>