Maven 2 Maven mojo插件,如何定义在此目标之前必须触发的阶段?

Maven 2 Maven mojo插件,如何定义在此目标之前必须触发的阶段?,maven-2,mojo,Maven 2,Mojo,哎,, 我有一个部署pojo插件(将war部署到远程服务器)。我在pom定义的构建部分有远程部署插件,我需要在部署远程目标之前触发包阶段,因为在我将其安全复制到远程服务器之前已经创建了war 通过执行元素(根据文档),我可以将我的目标附加到一个特定的阶段,例如,将其绑定到后面的阶段,所以在我的情况下,安装阶段……但这只是一个解决方法 <build> <plugins> <plugin> <groupId>sa

哎,, 我有一个部署pojo插件(将war部署到远程服务器)。我在pom定义的构建部分有远程部署插件,我需要在部署远程目标之前触发包阶段,因为在我将其安全复制到远程服务器之前已经创建了war

通过执行元素(根据文档),我可以将我的目标附加到一个特定的阶段,例如,将其绑定到后面的阶段,所以在我的情况下,安装阶段……但这只是一个解决方法

  <build>
    <plugins>
      <plugin>
        <groupId>sample.plugin</groupId>
        <artifactId>maven-hello-plugin</artifactId>
        <version>1.0-SNAPSHOT</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>sayhi</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

sample.plugin
maven hello插件
1.0-快照
包裹
早希
简单地说,如果我只把我的目标放在构建部分,并运行它,包阶段就不会在之前运行。请帮忙

Maven Mojo插件,如何定义在此目标之前必须触发的阶段

你不能

我在pom定义的构建部分有远程部署插件,我需要在部署远程目标之前触发包阶段,因为在我将其安全复制到远程服务器之前已经创建了war

只需将其绑定到
package
阶段,您的目标将在默认情况下绑定到
package
之后被调用(因此战争将在那里)

下面是一个示例,通过如下配置的Maven AntRun插件演示此行为:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <executions>
      <execution>
        <phase>package</phase>
        <configuration>
          <target>
            <echo message="Hi!!!!!"/>
          </target>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
antrun插件按预期在
后执行

Maven Mojo插件,如何定义在此目标之前必须触发的阶段

你不能

我在pom定义的构建部分有远程部署插件,我需要在部署远程目标之前触发包阶段,因为在我将其安全复制到远程服务器之前已经创建了war

只需将其绑定到
package
阶段,您的目标将在默认情况下绑定到
package
之后被调用(因此战争将在那里)

下面是一个示例,通过如下配置的Maven AntRun插件演示此行为:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <executions>
      <execution>
        <phase>package</phase>
        <configuration>
          <target>
            <echo message="Hi!!!!!"/>
          </target>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

antrun插件按预期在
包之后执行。

您可以尝试在@Mojo注释中使用PREPARE\u包阶段:

@Mojo(name = "myName", defaultPhase = LifecyclePhase.PREPARE_PACKAGE)

您可以尝试在@Mojo注释中使用PREPARE_包阶段:

@Mojo(name = "myName", defaultPhase = LifecyclePhase.PREPARE_PACKAGE)

我试过这样做,但战争并没有爆发。我完全按照我粘贴的示例中的方式进行了尝试,得到了“war不存在”的结果,它可以在安装阶段使用,但不能在软件包中使用……但这种解决方法并不好,因为我必须在安装之前始终安装工件deployment@lisak就像广告宣传的那样。如果您有不同的行为,请显示您的配置和显示问题的输出。抱歉,我可能应该进入睡眠状态:-)我正在运行“mvn myGoal:myPhase”而不是“mvn package”。。。所以这最后没问题,谢谢you@lisak没问题,很高兴我们解决了问题。我试过这样做,但战争并没有爆发。我完全按照我粘贴的示例中的方式进行了尝试,得到了“war不存在”的结果,它可以在安装阶段使用,但不能在软件包中使用……但这种解决方法并不好,因为我必须在安装之前始终安装工件deployment@lisak就像广告宣传的那样。如果您有不同的行为,请显示您的配置和显示问题的输出。抱歉,我可能应该进入睡眠状态:-)我正在运行“mvn myGoal:myPhase”而不是“mvn package”。。。所以这最后没问题,谢谢you@lisak没问题,很高兴我们解决了。