1

Maven プロジェクトの圧縮ツールを探していたjs/cssので、このスレッドを見つけました - Maven Javascript Compressor

すべて問題なく動作しますが、まだ解決しようとしている問題が 1 つあります。

サフィックス yui を設定しない場合、*-minデフォルトで設定され、古いファイルのすぐそばに新しいファイルが作成されます。したがって、たとえば、そのプラグインを使用して maven ビルドを行った場合、とファイルscripts.jsの両方が作成されます。ファイルだけが必要です。trueに設定すると、圧縮は成功したと表示されますが、ファイルは上書きされません。scripts.jsscripts-min.js*-min<nosuffix>

同じ名前の圧縮ファイルだけを持つ方法はありますか?

4

2 に答える 2

0

maven antプラグイン用のこのantスクリプトを作成することになりました:

<delete includeEmptyDirs="false">
    <fileset dir="${basedir}/target/${project.build.finalName}/resources/js" excludes="**/*-min.js" />          
</delete>
<move todir="${basedir}/target/${project.build.finalName}/resources/js" includeemptydirs="false">
    <fileset dir="${basedir}/target/${project.build.finalName}/resources/js" />
    <mapper type="glob" from="*-min.js" to="*.js" />
</move>

<delete includeEmptyDirs="false">
<fileset dir="${basedir}/target/${project.build.finalName}/resources/css"
    excludes="**/*-min.css, **/*.ttf, **/*.png, **/*.jpg" />
</delete>
<move todir="${basedir}/target/${project.build.finalName}/resources/css" includeemptydirs="false">
    <fileset dir="${basedir}/target/${project.build.finalName}/resources/css" />
    <mapper type="glob" from="*-min.css" to="*.css" />
</move>

簡単な説明: スクリプトは、最初に圧縮されていない古いファイルを削除してから、*-min.jsand*-min.cssファイルの名前を単に*.jsandに変更します。*.css

正常に動作し、テスト済みです。また、/jsまたは/cssフォルダー (.jsまたはではなく.css) にいくつかの異なるファイルがある場合は、それらを削除していないことを確認し、それらの拡張子をexcludeプロパティに入れます。

于 2013-03-07T15:58:10.283 に答える
0

はい、使用しているmaven Javascript Compressorはファイルを圧縮しました。しかし、maven パッケージのライフサイクル中、フェーズprepare-package中に圧縮が発生しました。その後、パッケージ フェーズ中に、maven-war-plugin は元のファイルをコピーし、コンプレッサーが行ったことを上書きします。以下の構成は、問題を解決する方法です.jsファイルを別のフォルダーに圧縮し、パッケージ段階でコピーして戻します。

    <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.5.1</version>
            <executions>
                <execution>
                <id>yui-compress</id>
                <phase>prepare-package</phase>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <excludes>
                    <exclude>**/*-min.js</exclude>
                    <exclude>**/*.min.js</exclude>
                    <exclude>**/*-min.css</exclude>
                    <exclude>**/*.min.css</exclude>
                    <exclude>**/amazeui*</exclude>
                    <exclude>**/*.css</exclude>
                </excludes>
                <encoding>UTF-8</encoding>
                <nosuffix>true</nosuffix>
                <statistics>false</statistics>
                <linebreakpos>5000</linebreakpos>
                <useSmallestFile>true</useSmallestFile>
                <jswarn>false</jswarn>
                <warSourceDirectory>${basedir}/web</warSourceDirectory>
                <webappDirectory>${project.build.directory}/min</webappDirectory>
                <skip>false</skip>
            </configuration>
        </plugin> 
         <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webResources>
                    <resource>
                        <directory>${project.build.directory}/min</directory>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
于 2017-09-09T07:42:30.313 に答える