使用 maven-resources-plugin 过滤时如何阻止反斜杠被转义?

How to stop backslashes being escaped when filtering with maven-resources-plugin?

我想使用 Maven 资源插件在 XML 资源文件中设置 XML 模式位置:

<root xsi:noNamespaceSchemaLocation="${env.myxsdpath}" ...>

除一件事外,此方法有效 - 替换路径具有双反斜杠而不是单个黑斜杠,例如:

<root xsi:noNamespaceSchemaLocation="C:\mypath\myschema.xsd" ...>

所以两个问题:

  1. 这是指定 XSD 文件的有效格式吗?
  2. 有没有办法告诉 Maven 使用单反斜杠而不是双反斜杠?

环境变量 myxsdpathC:\mypath\myschema.xsdmaven-resources-plugin 除了指定打开过滤时要包含的文件外,没有任何特殊配置。

此行为由 2.4 版中引入的 escapeWindowsPaths attribute of the maven-resources-plugin 控制。它默认为 true 意味着,默认情况下,所有 back-slashes 将被转义,将单 \ 变为双 \.

Whether to escape backslashes and colons in windows-style paths.

禁用此功能的示例配置:

<plugin>
  <artifactId>maven-resources-plugin</artifactId>
  <version>2.7</version>
  <configuration>
    <escapeWindowsPaths>false</escapeWindowsPaths>
  </configuration>
</plugin>