Maven2在pom类型包装下对文件应用过滤

时间:2010-03-12 09:07:34

标签: maven-2 pom.xml multi-module

我是maven的新手。我想在多模块项目中使用过滤。父pom的包装类型设置为pom。该项目的结构如下:

pom.xml
     |
     |______MODULE1
     |       |
     |       pom.xml
     |       File1_needed_to_be_filtered
     |
    File2_needed_to_be_filtered

请注意,Module1也是多模块项目。 所以请告诉我如何将过滤应用于file1和file2。如果我对file1应用过滤,那么处理文件将存储在哪里(因为包装类型为pom的pom文件不会创建任何名为target的文件夹!) 请帮助我,因为这对我来说非常关键,这个问题在互联网上没有得到解决。

2 个答案:

答案 0 :(得分:4)

您可以使用maven-assembly-plugin - 使用'dir'格式(尽管如果有多个文件,将其设为某种存档可能会有意义)。 descriptor format允许您过滤。这应该适用于您在上面描述的pom和文件层次结构。

但是,我建议将这些放在兄弟模块而不是父模块中。这样就可以将逻辑从聚合器pom中移除,并且(一旦你开始这样做),你可能会认为使用程序集将它们与你需要模块的其他组件一起分发更容易。

答案 1 :(得分:0)

要在复制时让Maven过滤资源,请为pom.xml中的资源目录设置过滤到true

<project>
  ...
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filterineg>
      </resource>
    </resources>
  </build>
</project>

但是如果你想过滤资源,不要把它们放在一个类型为pom的包装的项目中,这没有意义(因为你给自己的原因)。实际上,我不明白你想要实现的目标(因为你知道这不是事情的运作方式)。