从Maven执行Groovy脚本时,出现以下错误:
[错误]无法执行目标org.codehaus.groovy.maven:gmaven-plugin:1.0:执行(默认)项目/路径/到/项目:org.codehaus.groovy.runtime.metaclass.MissingPropertyExceptionNoStack:否这样的属性:类的项目:/ path / to / groovy / script / Example - > [帮助1]
我搜索了可能的cause和solution,但仍然不明白我做错了什么以及如何解决它。当我单独执行或通过ANT脚本执行它时,我的脚本运行正常。
这是脚本:
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>
答案 0 :(得分:3)
将脚本直接添加到Example.groovy
文件,只要您能够访问默认变量,而不是将其变为POGO。
该脚本最终编译为groovy类,其名称与文件名相同(在本例中为Example
)。我对class和psvm的整个想法持怀疑态度。 : - )
//Example.groovy
println 'hello world'
println "$project"
println "$session"
println "$settings"
答案 1 :(得分:0)
无论出于何种原因,gmaven-plugin似乎不像主
如果您将其编码为
class Example {
def show() {
println 'Hello World'
}
}
new Example().show();
它会起作用。