所以我正在尝试一些我认为相当简单的事情,我基本上希望 maven 在构建战争之前为我缩小所有 js 和 css 文件。我的插件看起来像这样:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<version>1.0.0</version>
<configuration>
<manifestLocation>META-INF</manifestLocation>
<instructions>
<Export-Package>!test.impl,test*</Export-Package>
<Import-Package>*</Import-Package>
<!--
add ,plugin.xml if it's present i.e.
src/main/resources,plugin.xml
-->
<Include-Resource>src/main/resources</Include-Resource>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>
<nosuffix>true</nosuffix>
</configuration>
</plugin>
问题是 YUI 插件确实正确地缩小了文件,但就在战争构建之前,它看起来像是复制了我的主源目录中的所有文件,从而消除了 YUI 插件所做的更改。
我通过以下方式调用 Maven:mvn compile war:war
。我已经用不同的设置玩了一段时间,但到目前为止我还没有找到解决这个问题的方法。
我想要的是,在战争从 src 目录复制所需的文件后,它将运行 YUI 插件,但我尝试了 YUI 插件上的所有阶段排列,但这似乎没有任何效果不同之处。
我用谷歌搜索了一下,但到目前为止我读到的几乎所有内容似乎都表明我应该只需要像我一样将 YUI 插件放在那里,一切都会神奇地工作。到目前为止我似乎还没有发现其中的魔力。
接受的答案不起作用。
这个答案更好(正如 koga 在他的评论中指出的那样):https://stackoverflow.com/a/11495021/11451
这是我最终所做的:
第 1 步:缩小 css 和 js
<plugin>
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7.2</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>minify</goal>
</goals>
</execution>
</executions>
<configuration>
<charset>UTF-8</charset>
<skipMerge>true</skipMerge>
<cssSourceDir>resources</cssSourceDir>
<jsSourceDir>resources</jsSourceDir>
<jsEngine>CLOSURE</jsEngine>
<nosuffix>true</nosuffix>
<webappTargetDir>${project.build.directory}/minify</webappTargetDir>
<cssSourceIncludes>
<cssSourceInclude>**/*.css</cssSourceInclude>
</cssSourceIncludes>
<cssSourceExcludes>
<cssSourceExclude>**/*.min.css</cssSourceExclude>
</cssSourceExcludes>
<jsSourceIncludes>
<jsSourceInclude>**/*.js</jsSourceInclude>
</jsSourceIncludes>
<jsSourceExcludes>
<jsSourceExclude>**/*.min.js</jsSourceExclude>
</jsSourceExcludes>
</configuration>
</plugin>
步骤2:用缩小的文件覆盖war中的css和js
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<webResources>
<resource>
<directory>${project.build.directory}/minify</directory>
</resource>
</webResources>
</configuration>
</plugin>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)