【问题标题】:Maven deploy plugin disable redeploymentMaven部署插件禁用重新部署
【发布时间】:2020-11-27 20:44:06
【问题描述】:

是否可以通过部署插件配置仅从 pom 级别禁用重新部署?

我试图防止重新部署工件中的少数工件,但不想设置这个全局(我知道它应该是全局的,但我只是那个工件的用户,这不由我决定)。 这就是为什么我想知道如果部署实际上意味着重新部署非 SNAPSHOT 版本,是否可以将我的工件 pom 配置为失败。

使用的Maven:3.6.1

【问题讨论】:

    标签: maven artifactory


    【解决方案1】:

    deploy:deploy 没有参数可以实现这一点。至少有两种解决方法可以防止意外部署:

    1。 deploy:deploy <skip>

        <properties>
            <skipDeploy>true</skipDeploy>
        </properties>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>3.0.0-M1</version>
                    <configuration>
                        <skip>${skipDeploy}</skip>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    

    部署:

    mvn deploy -DskipDeploy=false
    

    2。默认部署到本地TEMP,使用profile真正部署

        <distributionManagement>
            <repository>
                <uniqueVersion>false</uniqueVersion>
                <id>local-dummy-repo</id>
                <name>local dummy repository to prevent unintentional re-deploying</name>
                <url>file://${env.TEMP}/maven-dummy-repo</url>
                <layout>default</layout>
            </repository>
        </distributionManagement>
    
        <profiles>
            <profile>
                <id>deploy</id>
                <distributionManagement>
                    <repository>
                        <uniqueVersion>false</uniqueVersion>
                        <id>repo</id>
                        <name>real repository</name>
                        <url>scheme://authority/path</url>
                        <layout>default</layout>
                    </repository>
                </distributionManagement>
            </profile>
        </profiles>
    

    部署:

    mvn deploy -Pdeploy
    

    【讨论】:

    • 考虑到部署是通过具有简单命令的 Jenkins 作业进行的。这不是我想要做的。不过谢谢你的提议。可能必须使用某种脚本。
    • @TG 你所说的“Jenkins job which have simple command”到底是什么意思?Maven构建步骤有一个Goals and Options字段,每个Jenkins 作业/项目可以通过激活 ConfigurationGeneralThis build is parameterized 进行参数化。
    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2019-01-26
    • 1970-01-01
    • 2015-11-03
    • 2011-05-31
    相关资源
    最近更新 更多