我有一个构建war文件的maven项目。
在我的maven构建文件中包含yui压缩器导致在src / main / resources /中找不到与任何js文件无关的文件,在process-resources期间处理的文件在复制到目标目录时为空。确实非常奇怪。一旦yuicompressor插件从循环中移除,其他资源就会被处理得很好。
任何人都见过(请说是的;-))?
这是我的配置:
YUI Compressor配置:
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>compress</goal>
</goals>
<phase>process-resources</phase>
</execution>
</executions>
<configuration>
<excludes>
<exclude>**/extjs*/**/*.js</exclude>
<exclude>**/extjs*/**/*.css</exclude>
</excludes>
<nosuffix>true</nosuffix>
</configuration>
</plugin>
和Resources配置,包含复制到目标目录时为空的文件:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
重复:资源目录中的文件(log4j.xml等)正被复制到目标目录,但它们是空的。
感谢您的帮助!
答案 0 :(得分:1)
正在发生的事情是YUI Compressor插件将resources目录作为隐式压缩包含的位置之一。它在资源插件执行后运行,用空文件覆盖资源目录中的xml和.properties文件(因为xml和.properties文件不包含javascript)。我的修复是在插件的配置中添加新的排除:
<excludes>
<exclude>**/*.xml</exclude> <!-- <-- this one here -->
<exclude>**/*.properties</exclude> <!-- <-- and this one -->
<exclude>**/extjs*/**/*.js</exclude>
<exclude>**/extjs*/**/*.css</exclude>
</excludes>
然而,这仍然不太理想,因为任何没有xml或.properties后缀的资源仍将由yui压缩器解析;我回到了最初的问题。
我尝试了这种排除,但它不起作用:
<exclude>**/resources/*.*</exclude>
有没有人知道为什么以上不起作用,或者知道如何告诉yui插件不处理资源中的任何内容?