@Singleton
class ThrowError {
def parse()
{
println "Anish"
}
}
ThrowError.metaClass.static.getMap = {m_var -> ThrowError.instance.parse(m_var) }
발행 MVN이 ..........
[ERROR] Failed to execute goal org.codehaus.gmaven:gmaven-plugin:1.2:generateStubs (default) on project TestExpandoMetaClass: startup failed:
[ERROR] /C:/groovy/ThrowError.groovy: 4
: Invalid duplicate class definition of class ThrowError : The source /C:/groovy/ThrowError.groovy contains at least two definitions of the class ThrowError.
**[ERROR] One of the classes is a explicit generated class using the class statement, the other is a class generated from the s
cript body based on the file name. Solutions are to change the file name or to change the class name.**
[ERROR] @ line 4, column 1.
[ERROR] @Singleton
[ERROR]^
[ERROR]
[ERROR] 1 error
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.gmaven:gmaven-plugin:1.2:generate
Stubs (default) on project TestExpandoMetaClass: startup failed:
/C:/groovyThrowError.groovy: 4: Invali
d duplicate class definition of class ThrowError : The source /groovy/ThrowError.groovy contains at least two definitions of the class ThrowError
를 컴파일하는 동안
내가 프로젝트를 컴파일 할 gmaven 플러그인이 내 pom.xml 파일 항목 플러그인 gmaven 빌드 항목
되어 사용하고 있습니다<project>
............
............
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.2</version>
<configuration>
<providerSelection>1.7</providerSelection>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.gmaven.runtime</groupId>
<artifactId>gmaven-runtime-1.7</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>1.7.2</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>generateStubs</goal>
<goal>compile</goal>
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
..........
..........
</project>
이 종류의 클래스를 가져온 경우 스크립트 클래스는 어떻게 실행합니까? –
스크립트에는 run 메소드가 있습니다. 물론 정의 된 클래스에 따라 스크립트가 실행됩니다. – blackdrag
임포트시 에러가 발생하면 Groovy에서 잘못 해석하여 정의 된 클래스에 도달하기 전에 스크립트 클래스 정의를 생성합니다. – user2782001