2

私はこのガイドに従いました:

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」と表示されます。期待どおりにコンソールに表示されます。

「hello-maven-plugin」プラグインを使用したい別の Maven プロジェクト「my-project-usage」を作成しました。それはこの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 が実行されません。なぜですか?

4

2 に答える 2

2

この<execution>ブロックを最初の POM から 2 番目の POM に移動します。これは、プラグイン自体ではなく、プラグインを使用する場所でプラグインを実行する必要があるためです。

于 2012-06-12T14:12:11.397 に答える
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>セクションでは、プラグインを実行する maven のフェーズを指定し、プラグ<goal>インのどのゴールを実行するかを指定します。

于 2012-06-12T14:12:02.177 に答える