3

指が交差したあなたは私を助けることができます!

SmartSpritesを使用して、ランディングページのPNGを1つに結合しているので、読み込みが速くなります。

SmartSpriteは、CSSファイルを調べ、CSSスプライト画像を生成し、元の画像の代わりにこのスプライト画像を使用する新しいCSSファイルを作成します。私がやりたいのは、MavenWARのビルド中に元のCSSファイルをSmartSpriteファイルに自動的に置き換えることです。

だから、これが私が起こりたいことです:

  1. SmartSpriteは私のCSSファイルをスキャンします:mystyle.css
  2. SmartSpriteは、スプライトイメージを作成し、新しいスプライトイメージを参照する新しいmystyle-sprite.cssファイルを作成します。
  3. WARがビルドされる前にmystyle-sprite.cssmystyle.cssにコピーしたいので、JSPファイル内の参照を変更する必要はありません。

両方のファイルは出力ディレクトリ(target / myproj / css)にあります。SmartSpriteには元のファイルを上書きするフラグがないようですので、後処理を行う必要があったと思います。

以下は、SmartSpriteに使用しているMavenプラグインの構成です。

        <plugin>
            <groupId>org.carrot2.labs</groupId>
            <artifactId>smartsprites-maven-plugin</artifactId>
            <version>1.0</version>
            <executions>
                <execution>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>spritify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
4

2 に答える 2

20

残念ながら、次のような Maven AntRun プラグインよりもシンプルまたはエレガントなものは見つかりません。

<build>
  <plugins>
    <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.7</version>
      <executions>
        <execution>
          <phase>prepare-package</phase>
          <configuration>
            <target>
              <copy file="${project.build.directory}/mystyle-sprite.css"
                tofile="${project.build.directory}/mystyle.css" />
            </target>
          </configuration>
          <goals>
            <goal>run</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
于 2012-04-19T14:59:18.823 に答える
2

Maven WAR プラグインを使用できます。

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <webResources>
            <resource>
                <directory><!-- Your output directory --></directory>
                <targetPath><!-- The target location of the files below --></targetPath>
                <includes>
                    <include><!-- file pattern --></include>
                    <include><!-- file pattern --></include>
                </includes>
            </resource>
        </webResources>
    </configuration>
</plugin>

また、元の CSS ファイル名を保持するために別の出力ディレクトリを使用するように SmartSprites を構成する必要があります。空の値output-dir-pathでオプションを試してください。css-file-suffix

于 2012-04-19T14:49:26.993 に答える