从Maven执行Groovy脚本
从Maven执行Groovy脚本时,出现以下错误: [ERROR]无法在project/path/to/project:org.codehaus.groovy.runtime.metaclass.MissingPropertyException上执行目标org.codehaus.groovy.maven:gmaven插件:1.0:execute(默认值):org.codehaus.groovy.runtime.metaclass.MissingPropertyExceptionNoStack:没有这样的属性:类的项目:/path/to/groovy/script/Example->[Help 1] 我寻找了可能的和可能的,但仍然不明白我做错了什么,以及如何修复它。我的脚本在独立执行或通过ANT脚本执行时运行良好 以下是脚本:从Maven执行Groovy脚本,maven,groovy,gmaven-plugin,Maven,Groovy,Gmaven Plugin,从Maven执行Groovy脚本时,出现以下错误: [ERROR]无法在project/path/to/project:org.codehaus.groovy.runtime.metaclass.MissingPropertyException上执行目标org.codehaus.groovy.maven:gmaven插件:1.0:execute(默认值):org.codehaus.groovy.runtime.metaclass.MissingPropertyExceptionNoStack:没
class Example {
public static void main(String[] args){
new Example().show();
}
def show() {
println 'Hello World'
}
}
我这样称呼它:
<dependencies>
<dependency>
<groupId>org.codehaus.gmaven.runtime</groupId>
<artifactId>gmaven-runtime-1.7</artifactId>
<version>1.3</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>1.7.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>${pom.basedir}/path/to/script/Test.groovy</source>
</configuration>
</execution>
</executions>
</plugin>
org.codehaus.gmaven.runtime
gmaven-runtime-1.7
1.3
org.codehaus.groovy
groovy all
org.codehaus.groovy
groovy all
1.7.6
org.codehaus.groovy.maven
gmaven插件
产生资源
执行
${pom.basedir}/path/to/script/Test.groovy
将脚本直接添加到Example.groovy
文件中,只要您能够访问默认变量,而不是将其设置为POGO
脚本最终将自己编译成与文件名同名的groovy类(在本例中为Example
)。我对类和psvm的整个概念表示怀疑。:-)
将脚本直接添加到
Example.groovy
文件中,只要您能够访问默认变量,而不是将其设置为POGO
脚本最终将自己编译成与文件名同名的groovy类(在本例中为Example
)。我对类和psvm的整个概念表示怀疑。:-)
无论出于何种原因,gmaven插件似乎并不喜欢主插件 如果你像这样编码
class Example {
def show() {
println 'Hello World'
}
}
new Example().show();
无论出于何种原因,gmaven插件似乎不喜欢main 如果你像这样编码
class Example {
def show() {
println 'Hello World'
}
}
new Example().show();
它会起作用。尝试更新到
gmaven插件的1.5版
,这有帮助吗?错误消息显示版本1.0..尝试过,同样的事情。这就是我现在在POM中所做的:。尝试用${basedir}替换${POM.basedir}。尝试过,没有更改。甚至按其绝对路径引用脚本。您是否可以在名为示例的脚本中仅使用println'Hello World'
(删除所有类和psvm内容)?尝试更新到gmaven插件的1.5版
,这有帮助吗?错误消息显示版本1.0..尝试过,同样的事情。这就是我现在在POM中所做的:。尝试用${basedir}替换${POM.basedir}。尝试过,没有更改。甚至可以通过脚本的绝对路径引用脚本。您可以在名为示例的脚本中仅使用println'Hello World'
。groovy
(删除所有类和psvm内容)吗?dmahapatro是对的<代码>项目
可通过绑定
供脚本使用。无法从类访问。谢谢。我把我的课改成了脚本。例如,我的原始类使用groovy.io.FileType,因此我必须添加对groovy all的依赖,使我的POM成为,否则我将在定位g.I.FileType时出错。现在,当我执行Maven时,我得到了另一个错误-。@AlexKravets嗯,这看起来是一个与Maven完全相关的不同问题。您可以从和问题中找到一些有价值的输入。@dmahapatro感谢链接。最后一个问题,当我通过ANT脚本调用运行groovy类时,一切都正常。那么,通过ANT和Maven调用脚本有什么区别呢?dmahapatro是正确的<代码>项目可通过绑定
供脚本使用。无法从类访问。谢谢。我把我的课改成了脚本。例如,我的原始类使用groovy.io.FileType,因此我必须添加对groovy all的依赖,使我的POM成为,否则我将在定位g.I.FileType时出错。现在,当我执行Maven时,我得到了另一个错误-。@AlexKravets嗯,这看起来是一个与Maven完全相关的不同问题。您可以从和问题中找到一些有价值的输入。@dmahapatro感谢链接。最后一个问题,当我通过ANT脚本调用运行groovy类时,一切都正常。那么,通过ANT和Maven调用脚本有什么区别呢?