【问题标题】:mvn deploy == (mvn install && mvn deploy:deploy)?mvn deploy == (mvn install && mvn deploy:deploy)?
【发布时间】:2019-01-30 13:15:05
【问题描述】:

我刚刚在构建作业中看到了这些步骤:

  1. mvn 安装
  2. 在不删除任何内容的情况下检查一些已构建的内容...
  3. mvn deploy -Dskip.all.possible.stuff.so

第三步不能通过调用来实现

mvn deploy:deploy

也就是说,调用install 然后deploy:deploy 执行与调用deploy 完全相同的步骤吗?

编辑:从 JFMeier 的回答中我发现了不同之处,deploy:deploy 执行来自maven-deploy-plugindeploy 目标,它不会执行附加到deploy 的所有目标阶段。

【问题讨论】:

  • 只要没有其他插件附加到部署阶段,即如果 pom.xml 为部署阶段定义了其他目标,那么如果您只调用 deploy:deploy,这些目标将被忽略。
  • 对,这就是我要寻找的陷阱。请作为答案发布,以便我接受它

标签: maven


【解决方案1】:

只要没有将其他插件附加到部署阶段,这是正确的,即如果 pom.xml 为部署阶段定义了其他目标,那么如果您只调用 deploy:deploy,这些目标将被忽略

【讨论】:

    【解决方案2】:

    如果你调用mvn deploy,你会在部署阶段之前隐式调用maven生命周期的每个阶段。如果您检查this table,您将看到deploy 在默认生命周期中紧跟在install 之后,因此如果您调用mvn install,然后调用mvn deploy:deploy,您将调用从生命周期开始的所有阶段并且您也可以直接拨打mvn deploy

    【讨论】:

    • 如问题所述,有些东西需要在安装后部署前完成,所以不能直接调用deploy。
    • 如果我只是引用这个问题:“也就是说,调用 install 然后 deploy:deploy 执行与调用 deploy 完全相同的步骤吗?”。这就是我的答案。
    • 但其实你是对的:如果直接调用deploy,那么在install和deploy之间就不能无所事事。
    • 看问题上的编辑,确实有区别
    猜你喜欢
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 2011-10-12
    • 2016-07-22
    • 2010-09-17
    • 2012-07-25
    • 2011-08-26
    • 2018-10-20
    相关资源
    最近更新 更多