过滤:高级技术
本文档中描述了以下功能:
- 转义不应过滤的属性
- 根据扩展名忽略文件
转义属性
可能需要过滤文件中的某些属性并忽略另一个。过滤机制不会触及无法识别的令牌(即表示未知属性)。如果该属性显然是已知的,那么这将不起作用,因此应该明确地对其进行转义。
以下配置定义了 的值,escapeString
如果它以该值开始,它将停止属性的插值
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>3.2.0</version> <configuration> <filtering>true</filtering> <escapeString>\</escapeString> [...] </configuration> </plugin> </plugins> </build>
假设以下文件
jdbc.url=${db.url} jdbc.user=${db.username} jdbc.password=${db.password}
使用此配置过滤此类文件的内容将产生此内容。请注意,如果需要,现在可以稍后以通常的方式过滤转义的属性!
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl jdbc.user=someuser jdbc.password=${db.password}
根据扩展名忽略文件
过滤二进制文件会损坏它们,因此可能需要根据扩展名从过滤中排除文件。为此,请按如下方式配置插件
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>3.2.0</version> <configuration> <filtering>true</filtering> <nonFilteredFileExtensions> <nonFilteredFileExtension>png</nonFilteredFileExtension> <nonFilteredFileExtension>jpeg</nonFilteredFileExtension> </nonFilteredFileExtensions> [...] </configuration> </plugin> </plugins> </build>