Groovy 如何在maven概要文件中将${basedir}属性的反斜杠替换为斜杠
我有一个pom.xml,它定义了属性module.basedir,用于包含转换的basedir属性。其定义如下:Groovy 如何在maven概要文件中将${basedir}属性的反斜杠替换为斜杠,groovy,maven,profile,pom.xml,Groovy,Maven,Profile,Pom.xml,我有一个pom.xml,它定义了属性module.basedir,用于包含转换的basedir属性。其定义如下: <properties> <module.basedir>${basedir}</module.basedir> </properties> 看起来,当概要文件被执行时,它会创建项目中定义的属性的自己的副本,并且在从插件引用时使用它们 有什么建议吗 String path = '\\a\\b\\c' assert path.r
<properties>
<module.basedir>${basedir}</module.basedir>
</properties>
看起来,当概要文件被执行时,它会创建项目中定义的属性的自己的副本,并且在从插件引用时使用它们
有什么建议吗
String path = '\\a\\b\\c'
assert path.replaceAll('\\\\', '/') == '/a/b/c'
因此,您需要替换此行:
project.properties['module.basedir']=project.properties['module.basedir'].replace('\\','/');
与
之所以需要4个反斜杠,是因为源字符串中的每一个双反斜杠(在我的示例中是路径)都必须转义。我在windows上使用gmaven插件创建EJB模块描述时遇到了同样的问题。我并不精通Groovy,但这种方法适合我:
def basedir = project.properties['module.basedir'].replace('\\','/')
def md = (basedir + "/target/module.xml" as File)
事实并非如此,我可以在输出中看到字符串已更改。关键是,当我编写print${module.basedir}时,仍然会得到原始值。
project.properties['module.basedir']=project.properties['module.basedir'].replace('\\','/');
project.properties['module.basedir']=project.properties['module.basedir'].replace('\\\\','/');
def basedir = project.properties['module.basedir'].replace('\\','/')
def md = (basedir + "/target/module.xml" as File)