我找不到满足我最小化javascript和css需求的maven插件,所以我开始创建自己的。但是,我似乎遇到了障碍。文件的最小化版本总是被war插件或其他东西覆盖。
我的文件结构是
src
main
java
webapp
assets
css
style1.css
style2.css
style3.css
js
script1.js
script2.js
script3.js
我的插件接受那些,最小化它们,并且(应该)在构建目录中替换它们。如何确保它们不会被覆盖?
答案 0 :(得分:1)
您的插件将更改后的文件输出到哪里?我看到它的方式,它正在进行必要的更改(如果它工作),然后maven war插件将原始资源复制到它们上面。
也许你应该附上你的代码和pom.xml,以获得更好的答案。
编辑:
在查看了您的测试项目后,可以通过对pom.xml进行以下更改来解决问题:
diff --git a/pom.xml b/pom.xml
index 0fb6044..ee693f7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,9 +72,17 @@
<version>2.2</version>
<configuration>
<webappDirectory>${basedir}/src/main/webapp</webappDirectory>
+ <warSourceExcludes>assets</warSourceExcludes>
+
<failOnMissingWebXml>false</failOnMissingWebXml>
+ <webResources>
+ <resource>
+ <!-- this is relative to the pom.xml directory -->
+ <directory>${project.build.directory}/minified</directory>
+ </resource>
+ </webResources>
</configuration>
</plugin>
</plugins>
</build>
-</project>
\ No newline at end of file
+</project>
我还认为您修改的css文件被更改为src/main/webapp/assets
目录,这是不正确的。这些文件只有在复制到目标目录下的相应目录后才能更改。
我已经分叉了您的存储库并向您发送了拉取请求。
答案 1 :(得分:1)
首先,我建议使用能够为您压缩和合并JS / CSS的http://alchim.sourceforge.net/yuicompressor-maven-plugin/compress-mojo.html。
接下来,您需要确定哪个插件实际上覆盖了您的压缩文件以及发生的阶段。一旦你知道了这个阶段,你需要确保你的插件在另一个插件之后运行。