我有一个带有定义的属性 module.basedir 的pom.xml,旨在包含基于的转换后的属性。它的定义如下:
<properties>
<module.basedir>${basedir}</module.basedir>
</properties>
我有以下使用mgroovy插件执行的代码:
<source>
println project.properties['module.basedir']
project.properties['module.basedir']=project.properties['module.basedir'].replace('\\','/');
println project.properties['module.basedir']
</source>
后来我在其他插件中使用了此属性。直到我将插件定义移动到Maven配置文件中,此方法才能正常工作。当激活了Maven配置文件时,mgroovy插件可以正常工作,但是当我访问下一个插件中的属性时,我会得到未修改的值。
这是我访问此属性的方式:
${module.basedir}
看起来,执行配置文件时,它会创建项目中定义的自己的属性副本,并在从插件引用时使用它们。
有什么建议?
最佳答案
我在Windows上使用gmaven-plugin创建EJB模块描述时遇到了同样的问题。在Groovy中我不是一个精明的人,但是这种方法对我有用:
def basedir = project.properties['module.basedir'].replace('\\','/')
def md = (basedir + "/target/module.xml" as File)