2009-07-09 61 views
12

我有一个超级pom,其中为资源指定了一个“resources”目录。在我的一个项目中,我的pom扩展了这个超级pom,并且我想添加一个额外的资源。我想:向maven pom添加额外资源

<resources> 
     <resource> 
      <targetPath>/</targetPath> 
      <directory>additionalDir</directory>     
     </resource> 
    </resources> 

但导致 additionalDir在所述资源是与不包括超级POM的资源。有没有办法延长超级宝马的资源?

回答

14

您所描述的行为是预期的。

请记住,您的超级POM是从Maven的default POM继承而来的,几乎所有您在pom中定义的插件都会覆盖默认POM中的设置。例如,要在默认资源上启用筛选,您必须在POM中指定路径。你这样做:

<resources> 
    <resource> 
    <directory>src/main/resources</directory> 
    <filtering>true</filtering> 
    </resource> 
</resources> 

不是这个:

<resources> 
    <resource> 
    <filtering>true</filtering> 
    </resource> 
</resources> 

的默认目录不能上升为你,即使你没有指定它。可能会有专门的MOJO为你做,但我找不到。

+0

感谢您澄清。 – 2009-07-09 02:32:57

+0

我想知道,这是如何解决op的问题?你能让它更清楚吗?在哪里应该做任何改变 – Jaskey 2017-08-17 03:32:13

0

是的,当重新定义新资源部分时,maven覆盖父POM的资源。

但是,一个简单的方法来增加资源是

  1. 从你的POM中取出资源部分
  2. 显示了有效POM
  3. 复制从你的有效POM的资源到项目
  4. 用相对路径替换绝对路径
  5. 添加附加资源