为什么在maven周期的安装阶段,也会调用封装阶段?

时间:2014-06-16 18:58:32

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

我的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插件尚未安装而出现错误。那么为什么会这样呢?我想先安装我的插件然后再使用。抱歉英语不好。

3 个答案:

答案 0 :(得分:2)

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

可以获得更多信息here

答案 1 :(得分:2)

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

你真的不应该像这样手动制作插件。相反,你应该在该Weblogic插件上声明一个合适的Maven依赖,如果它实际上是必要的。

答案 2 :(得分:1)

打包阶段之前在maven的生命周期中就在install之前调用,所以如果你要求调用特定的阶段,它默认调用该阶段的所有阶段

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