我有一个带有定义的属性 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)

10-08 18:42