yuicompressor maven插件和maven-war-plugin

Dav*_*ple 17 plugins yui-compressor sonatype maven

我一直在努力让这个插件与maven-war-plugin很好地玩了几个小时,现在我觉得是时候寻求帮助了.我的插件定义如下:

<plugin>
    <groupId>net.alchim31.maven</groupId>
    <artifactId>yuicompressor-maven-plugin</artifactId>
    <version>1.3.0</version>
    <executions>
        <execution>
            <id>compressyui</id>
            <phase>process-resources</phase>
            <goals>
                <goal>compress</goal>
            </goals>
            <configuration>
                <nosuffix>true</nosuffix>
                <warSourceDirectory>${basedir}/WebContent</warSourceDirectory>
                <jswarn>false</jswarn>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

如果我删除nosuffix = true然后我可以看到压缩/缩小的-min.js文件按预期进入战争,但是这个标志被maven-war-plugin(我假设)覆盖了构建war文件.我真的需要文件名保持不变但是...有没有人知道我需要改变什么才能使用相同的文件名并仍然将缩小版本带入最后的战争?

Dav*_*ple 26

好.我终于想通了.你需要<webappDirectory>在yuicompressor插件中定义一个,然后可以<resource>在maven-war-plugin中引用它.在下面的例子中,我正在使用<directory>${project.build.directory}/min</directory>

<plugin>
    <groupId>net.alchim31.maven</groupId>
    <artifactId>yuicompressor-maven-plugin</artifactId>
    <version>1.3.0</version>
    <executions>
        <execution>
            <id>compressyui</id>
            <phase>process-resources</phase>
            <goals>
                <goal>compress</goal>
            </goals>
            <configuration>
                <nosuffix>true</nosuffix>
                <warSourceDirectory>${basedir}/WebContent</warSourceDirectory>
                <webappDirectory>${project.build.directory}/min</webappDirectory>
                <jswarn>false</jswarn>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <executions>
        <execution>
            <id>default-war</id>
            <phase>package</phase>
            <goals>
                <goal>war</goal>
            </goals>
            <configuration>
                <warSourceDirectory>${basedir}/WebContent</warSourceDirectory>
                <encoding>UTF-8</encoding>
            </configuration>
        </execution>
    </executions>
    <configuration>
        <warSourceDirectory>${basedir}/WebContent</warSourceDirectory>
        <encoding>UTF-8</encoding>
        <webResources>
            <resource>
                <directory>${project.build.directory}/min</directory>
            </resource>
        </webResources>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你,谢谢你,谢谢你!我有同样的问题,直到现在才找到任何合理的解决方案.YUI插件词汇非常混乱imo:/ (2认同)

小智 8

只需在WAR插件上配置'warSourceExcludes'即可.

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <warSourceExcludes>**/*.css,**/*.js</warSourceExcludes>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)