【问题标题】:Why during the install phase of maven cycle, package phase is called as well?为什么在 maven 周期的安装阶段,也会调用包阶段?
【发布时间】:2014-06-16 18:58:31
【问题描述】:

我的 pom.xml 中有一个部分

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <configuration>
      <pomFile>./lib/pom.xml</pomFile>
      <file>./lib/wls-maven-plugin.jar</file>
    </configuration>
    <executions>
       <execution> 
        <phase>install</phase>
            <goals>
              <goal>install-file</goal>
            </goals>
       </execution>
     </executions>

我想将 Weblogic 插件安装到我的本地存储库的位置。请注意,我表示我希望在安装阶段完成此操作。然后我想在打包和部署阶段使用这个插件。但是,当我尝试运行 mvn install 时,也会调用包阶段,并且由于尚未安装我的 weblogic 插件而出现错误。那么为什么会这样呢?我希望我的插件先安装然后再使用。抱歉英语不好。

【问题讨论】:

  • 那个 Weblogic 插件应该做什么?

标签: java maven maven-install-plugin maven-package


【解决方案1】:

install 目标告诉 Maven安装由相关项目或模块生成的工件。为了安装任何东西,Maven 必须将它们打包到 jar 或其他合适的工件中。

你真的不应该像这样手动玩弄插件。相反,如果确实有必要,您应该声明对该 Weblogic 插件的适当 Maven 依赖项。

【讨论】:

    【解决方案2】:

    Maven 构建生命周期由一系列阶段组成。当您执行某个阶段时,生命周期中在它之前的所有阶段将按顺序调用,直到您调用的阶段。默认构建生命周期从validate 阶段开始,以deploy 阶段结束,在这两者之间,package 阶段在install 之前。

    更多信息可以咨询here

    【讨论】:

      【解决方案3】:

      在 maven 的生命周期中,在 install 之前调用包阶段,因此如果您要求调用特定阶段,它会默认调用该阶段之前的所有阶段

      跳过包阶段实际上是不运行绑定在包阶段运行的插件(通常是 jar 插件),您可以通过 mvn help:effective-pom 找到所有这些插件,然后创建另一个构建配置文件并跳过它们的执行

      【讨论】:

        【解决方案4】:

        我找到了这个https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#usual-command-line-calls

        您应该选择与您的结果相匹配的阶段。如果你想要你的 jar,运行包。如果要运行单元测试,请运行测试。

        如果你不确定你想要什么,首选的调用阶段是

        mvn verify
        

        此命令在执行验证之前按顺序执行每个默认生命周期阶段(验证、编译、打包等)。您只需要调用要执行的最后一个构建阶段,在这种情况下,验证。在大多数情况下,效果与包装相同。但是,如果有集成测试,这些也将被执行。并且在验证阶段可以进行一些额外的检查,例如如果您的代码是根据预定义的 checkstyle 规则编写的。

        【讨论】:

          猜你喜欢
          • 2015-11-20
          • 1970-01-01
          • 2013-05-05
          • 2016-08-05
          • 1970-01-01
          • 2021-01-25
          • 2012-09-22
          • 1970-01-01
          • 2016-02-18
          相关资源
          最近更新 更多