如果存储库中存在某个工件 ,我怎么能失败? Maven Wagon插件有一个"存在"目标,但不是相反。
我的问题的原因如下。
My Maven项目通过自动构建管道,该管道在发布阶段结束。在使用mvn deploy -P release
设置发布版本后,此阶段会通过mvn versions:set -DremoveSnapshot
执行自动发布。手动触发舞台(因为不是每次推动都会导致释放)。
如果要上载的工件已经存储在存储库中,mvn deploy
将失败。但是,在管道的最后阶段,这种失败将会很晚,而存储库中的存在可以更早地检查。
为了获得快速失败的行为,我想检查将要发布的工件不是否已经上传到Nexus。我想在管道的第一阶段执行此操作,该阶段仅执行mvn package -P releasable
。优选地,"可释放的"配置文件会让Maven在"验证"期间自动检查。默认生命周期的阶段。
答案 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
中,您可以使用:
mvn dependency:get
using the maven-dependency-plugin task。依赖:如果工件存在,只需将工件放在本地存储库中即可 我不确定如何从那时起失败构建,因为检查本地仓库不够好。
您可以检查本地maven存储库中是否存在依赖项工件。