Может ли плагин yui compressor maven работать с WTP? - PullRequest
3 голосов
/ 31 марта 2012

Я использую Eclipse Indigo с M2E для развертывания локального веб-приложения с использованием WTP.Я также использую плагин yui-compressor, который, кажется, прекрасно работает в разнесенном каталоге war под target, но не работает с Eclipse WTP.Есть ли рекомендуемый способ настроить это так, чтобы я мог разрабатывать локально и использовать уменьшенные файлы?

Вот мой конфиг yui:

<plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.3.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <nosuffix>true</nosuffix>
                <force>true</force>
                <jswarn>false</jswarn>
                <linebreakpos>-1</linebreakpos>
                <excludes>
                    <exclude>**/lib/*</exclude>
                </excludes>
                <aggregations>
                    <aggregation>
                        <insertNewLine>true</insertNewLine>
                        <output>${project.build.directory}/${project.build.finalName}/static/js/script-${timestamp}.min.js</output>
                        <includes>
                            <include>**/script/*.js</include>
                        </includes>
                        <excludes>
                            <exclude>**/lib/*</exclude>
                        </excludes>
                    </aggregation>
                </aggregations>
            </configuration>
        </plugin>

<pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>net.alchim31.maven</groupId>
                                    <artifactId>yuicompressor-maven-plugin</artifactId>
                                    <versionRange>[1.2,)</versionRange>
                                    <goals>
                                        <goal>compress</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute />
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>

Ответы [ 2 ]

1 голос
/ 20 апреля 2013

Вы пробовали <runOnIncremental>true</runOnIncremental>?

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>net.alchim31.maven</groupId>
                                <artifactId>yuicompressor-maven-plugin</artifactId>
                                <versionRange>[1.3.0,)</versionRange>
                                <goals>
                                    <goal>compress</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <execute>
                                    <runOnIncremental>true</runOnIncremental>
                                </execute>
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

Чтобы M2E выводил файлы в каталог /src/ вместо каталога /target/, я использую следующее:

<plugins>
    <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>yuicompressor-maven-plugin</artifactId>
        <version>1.3.0</version>
        <executions>
            <execution>
                <goals>
                    <goal>compress</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <sourceDirectory>${project.basedir}/src/main/webapp/resources/js</sourceDirectory>
            <outputDirectory>${project.basedir}/src/main/webapp/resources/js-min</outputDirectory>
        </configuration>
    </plugin>
</plugins>

В моем HTML я ссылаюсь на файл (ы) JavaScript в [...]/resources/js-min/.

1 голос
/ 31 марта 2012

Проблема, я думаю, в том, что вы не указываете maven-war-plugin, где найти сгенерированные ресурсы.

Вы должны попытаться добавить секцию webResources в конфигурацию maven-war-plugin, например,

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
      <webResources>
        <resource>
          <filtering>true</filtering>
          <directory>${basedir}/src/main/webapp</directory>
          <excludes>
            <exclude>**/pattern-for-non-minified-scripts</exclude>
          </excludes>
        </resource>
        <resource>
          <filtering>true</filtering>
          <directory>${project.build.directory}/${project.build.finalName}</directory>
          <includes>
            <include>static/js/script-${timestamp}.min.js</include>
          </includes>
        </resource>
      </webResources>
    </configuration>
  </plugin>

Чтобы убедиться, что WTP подобрал минимизированные файлы, проверьте, что .settings/org.eclipse.wst.common.component file имеет следующую строку:

    <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
...