如果某个工件已经存在,如何使Maven构建失败

时间:2017-08-18 21:24:56

标签: maven release nexus

如果存储库中存在某个工件 ,我怎么能失败? Maven Wagon插件有一个"存在"目标,但不是相反。

我的问题的原因如下。

My Maven项目通过自动构建管道,该管道在发布阶段结束。在使用mvn deploy -P release设置发布版本后,此阶段会通过mvn versions:set -DremoveSnapshot执行自动发布。手动触发舞台(因为不是每次推动都会导致释放)。

如果要上载的工件已经存储在存储库中,mvn deploy将失败。但是,在管道的最后阶段,这种失败将会很晚,而存储库中的存在可以更早地检查。

为了获得快速失败的行为,我想检查将要发布的工件是否已经上传到Nexus。我想在管道的第一阶段执行此操作,该阶段仅执行mvn package -P releasable。优选地,"可释放的"配置文件会让Maven在"验证"期间自动检查。默认生命周期的阶段。

1 个答案:

答案 0 :(得分:2)

  

如果要上载的工件已经存储在存储库中,则mvn部署将失败

注意:仅当您上传为" RELEASE"而不是" SNAPSHOT"。

您的构建可以check first if that release version exists

mvn dependency:get -Dartifact=g:a:v -o -DrepoUrl=file://path/to/your/repo

如果gav(group-artifact-version)确实存在,那么你就不会继续进行其余的构建。

要将其保存在pom.xml中,您可以使用:

  

依赖:如果工件存在,只需将工件放在本地存储库中即可   我不确定如何从那时起失败构建,因为检查本地仓库不够好。

您可以检查本地maven存储库中是否存在依赖项工件。