我有一些关于pom的问题。基本上我们想要过滤整个目录,但是我不希望过滤该目录的某些部分,但仍需要包含在我的构建中。
以下是一个例子:
文件夹目录:
some/
path/
dir1
stylesheet
dir2
imageFile
dir3
fontFile
然后在我的pom中我有类似的东西:
<resource>
<directory>some/path</directory>
<filtering>true</filtering>
</resource>
这很好,除了我遇到了fontFile和imageFile类型文件的问题,所以我需要将它们从过滤中排除。我的第一反应是做这样的事情:
<resource>
<directory>some/path/dir1</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>some/path/dir2</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>some/path/dir3</directory>
<filtering>false</filtering>
</resource>
现在对于我的实际实现,这将是非常不可扩展的并且有点冗长。所以我很好奇是否有办法设置它,以便我们可以在顶层设置过滤,然后排除我们不想过滤的目录。
所以我喜欢这样的东西:
<resource>
<directory>some/path/dir1</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.eot</exclude>
<exclude>**/*.svg</exclude>
<exclude>**/*.ttf</exclude>
<exclude>**/*.woff</exclude>
</excludes>
</resource>
如何阻止我的所有字体文件一起包含在目标中。我尝试了几种不同的组合,希望我可以包含文件,然后进行过滤,如下所示:
<resource>
<directory>some/path</directory>
<filtering>false</filtering>
<includes>
<include>**/dir2/**</include>
<include>**/dir3/**</include>
</includes>
</resource>
<resource>
<directory>some/path</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/dir2/**</exclude>
<exclude>**/dir3/**</exclude>
</excludes>
</resource>
我目前处于亏损状态,所以我希望有人可能会对如何做到这一点有所了解,而无需单独定位每个目录。
谢谢你, 布罗迪答案 0 :(得分:3)
因此,在进行了更多挖掘之后,只是查看了周围的不同pom.xml文件,我发现了一种从过滤器中排除某些文件类型的简单方法。
基本上,在声明maven-resources-plugin时,您可以设置一个属性,允许从过滤中排除所有类型的文件。
我的例子:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<includeEmptyDirs>true</includeEmptyDirs>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
<nonFilteredFileExtension>eot</nonFilteredFileExtension>
<nonFilteredFileExtension>woff</nonFilteredFileExtension>
<nonFilteredFileExtension>svg</nonFilteredFileExtension>
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
如果您不想全局排除,可以选择此方法。这与我在第二个例子中尝试做的非常相似,但我的例子有点倒退。可在此处找到更好的示例:页面底部的http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html。
表格maven.apache.org
<project>
...
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/*.xml</exclude>
</excludes>
</resource>
...
</resources>
...
</build>
...
</project>