我一直试图找出为什么 yuicompressor-maven-plugin 在“mvn package”期间没有执行。我可以在独立任务中执行它,如下面的链接所述,但不知何故,该插件不会从 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>
我读过类似的帖子,但无法弄清楚为什么它不受“进程资源”的限制。阶段和目标是明确设置的,因此不确定为什么不调用它。有没有办法调试为什么在“mvn package”期间没有调用 yuicompressor-maven-plugin?我使用maven 2.2.1。也许我的 Maven 版本无法与该插件配合使用?
感谢您的帮助,
三马士
最佳答案
您只需要将插件管理区域的运行放入常用的插件区域中,例如:
<build>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.3.0</version>
....
</plugin>
</plugins>
</build>
在pluginManagement中,您仅定义插件的默认值,特别是版本,但您实际上并不绑定(bind)到实际执行。对于其他插件等,这有效,因为它们已经在 superpom 的构建区域中定义,因此这使您有机会通过pluginManagement 重新定义它们,但不能使用从未属于任何构建区域的插件。
关于maven-2 - yuicompressor-maven-plugin 不受进程资源限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12203892/