2

「mvn package」中に yuicompressor-maven-plugin が実行されない理由を理解しようとしています。以下のリンクで説明されているように、独立したタスクで実行できますが、何らかの理由でプラグインが maven ライフサイクルから呼び出されません。

http://davidb.github.com/yuicompressor-maven-plugin/usage_compress.html

これが私が使用するサンプル pom.xml です。

  <build>
    <pluginManagement>
      <plugins>
     <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <configuration>
         <source>1.6</source>
         <target>1.6</target>
           </configuration>
     </plugin>

    <!-- yuicompressor-maven-plugin -->
        <plugin>
          <groupId>net.alchim31.maven</groupId>
          <artifactId>yuicompressor-maven-plugin</artifactId>
          <version>1.3.0</version>
          <executions>
            <execution>
              <id>compress</id>
              <phase>process-resources</phase>
              <goals>
                <goal>compress</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <linebreakpos>-1</linebreakpos>
            <encoding>UTF-8</encoding>
            <nosuffix>true</nosuffix>
            <force>true</force>
            <jswarn>false</jswarn>
            <webappDirectory>${project.build.directory}/minified</webappDirectory>
            <aggregations>
              <aggregation>
                    <insertNewLine>true</insertNewLine>
                <output>${project.build.directory}/${project.build.finalName}/js/abc-min.js</output>
                <includes>
                  <include>${basedir}/src/main/webapp/js/comments.txt</include>
                  <include>${project.build.directory}/minified/js/def.js</include>
                </includes>
              </aggregation>              
            </aggregations>
          </configuration>
        </plugin>       

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>2.2</version>
          <configuration>
            <warSourceExcludes>js/**/*.js,js/**/*.txt,css/**/*.css,css/**/*.txt</warSourceExcludes>
          </configuration>
        </plugin>       

      </plugins>
    </pluginManagement>
  </build>

同様の投稿を読みましたが、「プロセスリソース」に限定されていない理由がわかりませんでした。Phase と Goal は明示的に設定されているため、呼び出されない理由がわかりません。「mvn パッケージ」中に yuicompressor-maven-plugin が呼び出されない理由をデバッグする方法はありますか? 私はMaven 2.2.1を使用しています。おそらく私の Maven のバージョンはプラグインで動作しませんか?

ご協力いただきありがとうございます、

シャマシ

4

1 に答える 1

2

次のように、pluginManagement 領域の実行を通常のプラグイン領域に配置するだけです。

<build>
  <plugins>
    <plugin>
      <groupId>net.alchim31.maven</groupId>
      <artifactId>yuicompressor-maven-plugin</artifactId>
      <version>1.3.0</version>
      ....
    </plugin>
  </plugins>
</build>

pluginManagement では、プラグインのデフォルト、特にバージョンのみを定義しますが、実際の実行にはバインドしません。他のプラグインなどの場合、これにより、supoer pom のビルド領域で既に定義されているため、pluginManagement を介してそれらを再定義する機会が与えられますが、ビルド領域の一部ではないプラグインではできません。

于 2012-08-31T06:03:39.237 に答える