Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在构建WAR之前在Maven中重命名生成的文件_Java_Maven_Css Sprites - Fatal编程技术网

Java 在构建WAR之前在Maven中重命名生成的文件

Java 在构建WAR之前在Maven中重命名生成的文件,java,maven,css-sprites,Java,Maven,Css Sprites,但愿你能帮助我 我正在使用将我的登录页上的PNG合并为一个,这样它将加载得更快 SmartSprite将检查您的CSS文件,生成CSS Sprite图像,并创建一个新的CSS文件,该文件将使用此Sprite图像而不是原始图像。我想做的是在maven WAR构建过程中自动用SmartSprite文件替换原始CSS文件 下面是我希望发生的事情: SmartSprite扫描我的CSS文件:mystyle.CSS SmartSprite创建一个精灵图像,并创建一个新的mystyle-sprite.css

但愿你能帮助我

我正在使用将我的登录页上的PNG合并为一个,这样它将加载得更快

SmartSprite将检查您的CSS文件,生成CSS Sprite图像,并创建一个新的CSS文件,该文件将使用此Sprite图像而不是原始图像。我想做的是在maven WAR构建过程中自动用SmartSprite文件替换原始CSS文件

下面是我希望发生的事情:

  • SmartSprite扫描我的CSS文件:mystyle.CSS
  • SmartSprite创建一个精灵图像,并创建一个新的mystyle-sprite.css文件,该文件引用新的精灵图像
  • 在构建WAR之前,我想将mystyle-sprite.css复制到mystyle.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>
    
    
    org.2.labs
    smartsprites maven插件
    1
    准备包装
    喷洒
    
    您可以使用:

    
    maven战争插件
    

    您还应该将SmartSprites配置为使用不同的输出目录来保留原始CSS文件名。请尝试带有空
    css文件后缀值的
    output dir path
    选项。

    恐怕您找不到比Maven AntRun插件更简单、更优雅的插件了:

    
    maven antrun插件
    1.7
    准备包装
    跑
    
    Hi Ates,如何使用参考资料将文件从mystyle-sprite.css重命名为mystyle.css?我认为这只能包含或排除一个文件,但不能在传输过程中更改其名称。@johnfarrly更新了我的答案。尝试使用不同的输出目录(一个与WAR默认的暂存区不同的目录)。哦,是的,这会起作用。我将此方法用于稍微不同的场景(RequireJS优化JS+CSS文件)。谢谢。我必须编写自己的maven插件来显式传递一个空的css文件后缀,但在这之后它就可以工作了!此代码段不会重命名该文件。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>