2

war ファイルをビルドする Maven プロジェクトがあります。

Maven ビルド ファイルに yui コンプレッサーを含めると、どの js ファイルとも関係のない src/main/resources/ にあるファイルが、process-resources 中に処理され、ターゲット ディレクトリにコピーされるときに空になります。確かに非常に奇妙です。yuicompressor プラグインがサイクルから削除されると、他のリソースは問題なく処理されます。

誰もそれを見たことがありますか(はい、そう言ってください;-))?

これが私の設定です:

YUI コンプレッサーの設定:

<plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                    <phase>process-resources</phase>
                </execution>
            </executions>
            <configuration>
                <excludes>
                    <exclude>**/extjs*/**/*.js</exclude>
                    <exclude>**/extjs*/**/*.css</exclude>
                </excludes>
                <nosuffix>true</nosuffix>
            </configuration>
        </plugin>

そして、ターゲット ディレクトリにコピーされたときに空であるファイルを含む Resources 構成:

<resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>

繰り返しますが、リソース ディレクトリ内のファイル (log4j.xml など) がターゲット ディレクトリにコピーされていますが、それらは空です。

ご協力いただきありがとうございます!

4

1 に答える 1

1

何が起こっているのかというと、YUI Compressorプラグインには、暗黙的に圧縮するために含める場所の1つとしてresourcesディレクトリがあります。これは、リソースプラグインが実行された後に実行され、リソースディレクトリ内のxmlファイルと.propertiesファイルを空のファイルで上書きしていました(xmlファイルと.propertiesファイルにはjavascriptが含まれていないため)。私の修正は、プラグインの構成に新しい除外を追加することでした。

  <excludes>
                    <exclude>**/*.xml</exclude> <!-- <-- this one here -->
                    <exclude>**/*.properties</exclude> <!-- <-- and this one -->
                    <exclude>**/extjs*/**/*.js</exclude>
                    <exclude>**/extjs*/**/*.css</exclude>
                </excludes>

ただし、xmlまたは.propertiesサフィックスのないリソースは、yuiコンプレッサーによって解析されるため、これはまだ理想的とは言えません。元の問題に戻ります。

この除外を試しましたが、機能しませんでした。

<exclude>**/resources/*.*</exclude>

上記が機能しない理由、またはリソース内の何も処理しないようにyuiプラグインに指示する方法を知っている人はいますか?

于 2011-01-04T17:58:58.797 に答える