Файлы Javascript и CSS, объединенные в Maven build БЕЗ сжатия, минимизации и т.д.

Есть ли плагин Maven, который просто объединяет js и css-ресурсы, но не делает каких-либо изменений, обструкции, сжатия и т.д.? Простое конкатенация ресурсов.

Ответ 1

Внесите следующие изменения в свой проект:

  • В тэге pom.xml, <dependencies> поместите:

    <!-- JAVASCRIPT COMBINATION -->
    <dependency>
        <groupId>ro.isdc.wro4j</groupId>
        <artifactId>wro4j-core</artifactId>
    </dependency>
    
  • В теге pom.xml, <plugins> поместите:

    <plugin>
        <groupId>ro.isdc.wro4j</groupId>
        <artifactId>wro4j-maven-plugin</artifactId>
        <version>1.4.3</version>
        <executions>
            <execution>
                <phase>process-resources</phase>
                <goals>
                    <goal>run</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <targetGroups>allDev</targetGroups>
            <destinationFolder>${basedir}/src/main/webapp/</destinationFolder>
            <contextFolder>${basedir}/src/main/webapp/</contextFolder>
        </configuration>
    </plugin>
    
  • В pom.xml (или родительском теге pom.xml) <dependencyManagement> поместите:

    <!-- JAVASCRIPT COMBINATION -->
    <dependency>
        <groupId>ro.isdc.wro4j</groupId>
        <artifactId>wro4j-core</artifactId>
        <version>1.8.0</version>
    </dependency>
    
  • Создайте wro.xml под /project/src/main/webapp/WEB-INF и поместите что-то вроде следующего:

    <?xml version="1.0" encoding="UTF-8"?>
    <groups xmlns="http://www.isdc.ro/wro">  
        <group name="allDev">  
            <js minimize="false">/my1stJsFolder/*.js</js>
            <js minimize="false">/my2ndJsFolder/*.js</js>
            <js minimize="false">/someFileDirectlyUnderWEBINF.js</js>
        </group>
    </groups>  
    
  • В web.xml вставить:

    <filter>
        <filter-name>WebResourceOptimizer</filter-name>
        <filter-class>ro.isdc.wro.http.WroFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>WebResourceOptimizer</filter-name>
        <url-pattern>/wro/*</url-pattern>
    </filter-mapping>
    

allDev.js будет создан в /project/src/main/webapp.

Я еще не уверен, как я могу сказать, что wro4j генерирует только один объект (теперь у вас есть два - один в исходных файлах проекта и один в целевом).

При сжатии с помощью плагина yui я получаю только один объект. Но это не должно быть для вас большой проблемой.

Подробнее:

ДОПОЛНИТЕЛЬНО:

Если у вас возникли проблемы с обработкой ресурсов, добавьте в тег <build>:

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
    </resource>
</resources>

А также <plugins> добавить

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <nonFilteredFileExtensions>
            <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
            <nonFilteredFileExtension>swf</nonFilteredFileExtension>
            <nonFilteredFileExtension>jpg</nonFilteredFileExtension>
            <nonFilteredFileExtension>jpeg</nonFilteredFileExtension>
            <nonFilteredFileExtension>class</nonFilteredFileExtension>
            <nonFilteredFileExtension>jks</nonFilteredFileExtension>
            <nonFilteredFileExtension>exe</nonFilteredFileExtension>
            <nonFilteredFileExtension>wmv</nonFilteredFileExtension>
            <nonFilteredFileExtension>jar</nonFilteredFileExtension>
            <nonFilteredFileExtension>zip</nonFilteredFileExtension>
            <nonFilteredFileExtension>gz</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>  

Ответ 2

Я думаю, что большинство инструментов позволят вам отключить минимизацию.

Вот еще одна пара, которая выглядит интересной:

http://jawr.java.net/

https://code.google.com/p/wro4j/