我的maven插件没有被执行

时间:2012-06-12 14:03:55

标签: maven

我已遵循本指南:

http://maven.apache.org/guides/plugin/guide-java-plugin-development.html

我用pom文件创建了一个maven-plugin项目“hello-maven-plugin”:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>sample.plugin</groupId>
  <artifactId>hello-maven-plugin</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>maven-plugin</packaging>

  <name>Sample Parameter-less Maven Plugin</name>

  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>2.0</version>
    </dependency>
  </dependencies>

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

当我用它构建时:

mvn install

打印出“Hello,world”。在预期的控制台中。

我创建了另一个maven项目“my-project-usage”,我想使用“hello-maven-plugin”插件。它有这个pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>my-project</artifactId>
    <groupId>com</groupId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>my-project-usage</artifactId>
  <build>
    <plugins>
      <plugin>
            <groupId>sample.plugin</groupId>
            <artifactId>hello-maven-plugin</artifactId>
            <version>1.0-SNAPSHOT</version>
      </plugin>
    </plugins> 
  </build>
</project>

当我构建这个项目时,hello-maven-plugin永远不会执行,为什么?

2 个答案:

答案 0 :(得分:2)

将此<execution>块从第一个POM移动到第二个POM,因为您需要在那里执行插件,使用插件,而不是插件本身。

答案 1 :(得分:1)

您可以在<plugin>部分指定插件的邀请,因此您需要第一个pom中的相应设置:

<plugins>
  <plugin>
    <groupId>sample.plugin</groupId>
    <artifactId>hello-maven-plugin</artifactId>
    ...
    <executions>
      <execution>
        <phase>compile</phase>
        <goals>
          <goal>sayhi</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>

<phase>部分指定插件应在哪个阶段运行,<goal>指定要执行的插件的目标