2013-04-10 34 views
1

我正在使用YUICompressor maven插件来缩小和聚合我的css文件,该插件在我的资源目录下创建一个单独的css文件。这些原始的css文件嵌套在一些文件夹中,这些文件夹的“图像”文件夹也处于同一级别。为什么图像文件未被maven-resources-plugin复制?

我想将这些嵌套图像文件夹中的所有图像复制到我的资源目录底部的一个“图像”文件夹中,以便聚合的CSS仍可以引用这些图像。

这里是我的插件配置:

<plugin> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.6</version> 
    <executions> 
     <execution> 
      <id>copy-images-for-css</id> 
      <!-- here the phase you need --> 
      <phase>process-resources</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>target/${project.artifactId}-${project.version}/plugin/resources/${plugin.client.version}/images</outputDirectory> 
       <resources> 
        <resource> 
         <directory>target/${project.artifactId}-${project.version}/plugin/resources/${plugin.client.version}</directory> 
         <includes> 
          <include>**/images/*.*</include> 
         </includes> 
        </resource> 
       </resources> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

为了测试这一点,我已经把.js文件中嵌套的图像文件旁边的.gif和.jpg文件我要拷贝过来。但是,只有.js文件被移动到正确的位置;图像文件没有任何反应。

什么给?

UPDATE 1:

的目录结构的多个视觉描述:

resources 
|--1.1.0 
    |--all.min.css 
    |--images   //a newly created folder 
     |--sample1.gif //the copied file 
     |--sample2.gif //the copied file 
    |--category 
     |--category.css 
     |--images 
     |--sample1.gif 
    |--otherCategory 
     |--otherCategory.css 
     |--images 
     |--sample2.gif 

更新2: 我只是试图执行与copy-maven-plugin复制和有同样的结果, js文件被复制而不是图像文件。不确定这些插件是否共享功能,但如果不是这样,它会让我觉得有一些与插件无关的事情。我能够使用Windows命令提示符成功复制文件。

+0

可以为您提供你和你努力实现一个简单的文件夹层次结构? – maks 2013-04-10 21:51:02

+0

您是否筛选标记的标记的资源? – maks 2013-04-10 22:07:28

+0

@maks不,这是我的pom文件中唯一发生的资源标记。 – Noremac 2013-04-10 22:23:00

回答

1

我不知道资源复制到目标目录的时间,但似乎图像根本没有在复制的时间。我意识到,没有真正的理由需要从目标目录而不是我的源文件复制。我更新了如下所示的目录,并且图像被成功复制。

前:

<directory>target/${project.artifactId}-${project.version}/plugin/resources/${plugin.client.version}</directory> 

后:

<directory>src/main/webapp/plugin/resources/${plugin.client.version}</directory> 
1

尝试用 <include>**/images/*</include>代替<include>**/images/*.*</include>。但它很奇怪,为什么它不适用于你的变种。 也适合您的情况最好使用assembly插件

+0

上面的建议也不起作用,它也只复制js文件。至于程序集插件,除了从我的pom构建的war文件之外,不会创建第二个“程序集”吗? – Noremac 2013-04-11 15:04:18

+0

不,您必须在特殊文件中声明要创建的装配体的内容。阅读有关Maven Assembly插件的文档,有一个特殊的选项用于战争,zip,jar程序集 – maks 2013-04-11 15:31:41

+0

+1将我引导到程序集插件 – Noremac 2013-04-11 16:26:19