2014-10-31 40 views
3

我試圖在構建時使用wro4j Maven(通過m2e-wtp調用 - 使用Eclipse Luna)來構建js & css文件,但它不起作用。我試過1.7.5,1.7.7版本。我試圖在構建時使用wro4j gzip js和css文件Maven

下面是配置我有:

wro.xml:

<plugin> 
    <groupId>ro.isdc.wro4j</groupId> 
    <artifactId>wro4j-maven-plugin</artifactId> 
    <executions> 
     <!-- JS minification --> 
     <execution> 
      <id>js-minify</id> 
      <phase>compile</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <debug>true</debug> 
       <targetGroups>angular-deps,app-bundle</targetGroups> 
       <minimize>true</minimize> 
       <!-- provide Google Closure compiler options using custom factory --><wroManagerFactory>com.manikanta.wro4j.maven.CustomWroManagerFactory</wroManagerFactory> 
       <groupNameMappingFile>${basedir}/src/main/webapp/js-min/group-mapping.properties</groupNameMappingFile> 
       <ignoreMissingResources>false</ignoreMissingResources> 
       <gzipEnabled>true</gzipEnabled> 
      </configuration> 
     </execution> 

     <!-- CSS minification --> 
     <execution> 
      <id>css-minify</id> 
      <phase>compile</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <targetGroups>styles</targetGroups> 
       <minimize>true</minimize> 
       <ignoreMissingResources>true</ignoreMissingResources> 
       <groupNameMappingFile>${basedir}/src/main/webapp/css-min/group-mapping.properties</groupNameMappingFile> 
      </configuration> 
     </execution> 
    </executions> 

    <configuration> 
     <contextFolder>${basedir}/src/main/webapp/</contextFolder> 
     <!-- <destinationFolder>${project.build.directory}/${project.build.finalName}</destinationFolder> --> 
     <destinationFolder>${basedir}/src/main/webapp/bundle</destinationFolder> 
     <jsDestinationFolder>${basedir}/src/main/webapp/js-min</jsDestinationFolder> 
     <cssDestinationFolder>${basedir}/src/main/webapp/css-min</cssDestinationFolder> 
     <wroFile>${basedir}/src/main/resources/wro.xml</wroFile> 
     <extraConfigFile>${basedir}/src/main/resources/wro.properties</extraConfigFile> 
     <wroManagerFactory>ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory> 
     <ignoreMissingResources>false</ignoreMissingResources> 
     <incrementalBuildEnabled>true</incrementalBuildEnabled> 
    </configuration> 
</plugin> 

wro.properties:

# General Configuration 
debug=true 

gzipResources=true 
gzipEnabled=true 

#List of preProcessors 
preProcessors=googleClosureSimple 
#List of postProcessors 
postProcessors=yuiCssMin 

# naming strategy 
hashStrategy=CRC32 
namingStrategy=hashEncoder 

sourceMapsDestinationFolder=d:/__sourcemaps 

incrementalBuildEnabled=true 

parallelPreprocessing=true 
parallelProcessing=true 

我都嘗試gzipResourcesgzipEnabled(它是不清楚哪一次用於構建時間解決方案!)。

有人能告訴我如何在構建時做gzip嗎?謝謝。

+0

我問https://issues.apache.org/jira/browse/MWAR-354,因爲我沒有看到香草行家這樣做的方式,它應該在那裏。 – 2015-08-28 05:54:09

回答

0

maven插件負責生成簡單的最小化資源。它不應該產生gzip的內容。爲了提供gzip內容,您應該使用專門的過濾器或配置您的容器來處理gzip操作。

+1

呵呵...現在Tomcat 8支持預壓縮資源(http://tomcat.apache.org/tomcat-8.0-doc/default-servlet.html),現在這個功能更有意義,我認爲。有什麼辦法可以使用wro4j運行時gzipping功能來實現構建時間gzipping?謝謝。 – manikanta 2014-11-04 00:36:31

+0

有ro.isdc.wro.http.GzipFilter實現可以幫助你。你也可以使用Spring提供的類似實現(不記得類名)。 – 2014-11-04 07:48:38