1

我找不到满足我最小化 javascript 和 css 需求的 maven 插件,所以我开始创建自己的插件。然而,我似乎遇到了障碍。文件的最小化版本总是被战争插件或其他东西覆盖。

我的文件结构是

src
   main
       java
       webapp
           assets
                 css
                   style1.css
                   style2.css
                   style3.css
                 js
                   script1.js
                   script2.js
                   script3.js

我的插件采用这些,最小化它们,并且(应该)在构建目录中替换它们。如何确保它们不被覆盖?

4

2 回答 2

1

首先,我建议只使用http://alchim.sourceforge.net/yuicompressor-maven-plugin/compress-mojo.html它能够为您压缩和合并 JS/CSS。

接下来,您需要弄清楚哪个插件实际上覆盖了您的压缩文件以及发生在哪个阶段。一旦你知道了你需要确保你的插件在另一个插件之后运行的阶段。

于 2012-07-01T08:51:27.727 回答
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不正确的目录中。这些文件只有在复制到目标目录下的相应目录后才能更改。

我已经分叉了您的存储库并向您发送了拉取请求。

于 2012-06-29T21:07:58.627 回答