加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用gmaven插件获取org.codehaus.groovy.control.MultipleCompil

发布时间:2020-12-14 16:26:10 所属栏目:大数据 来源:网络整理
导读:这是我的示例程序,使用mvn进行编译时会抛出编译错误,我正在尝试使用ExpandoMetaClass添加静态方法 – @Singleton class ThrowError { def parse () { println "Anish" } } ThrowError.metaClass.static.getMap = {m_var - ThrowError.instance.parse(m_var)
这是我的示例程序,使用mvn进行编译时会抛出编译错误,我正在尝试使用ExpandoMetaClass添加静态方法 –

@Singleton
        class ThrowError {
            def parse ()
            {
                println "Anish"
            }

        }
        ThrowError.metaClass.static.getMap = {m_var -> ThrowError.instance.parse(m_var) }

我正在使用gmaven插件来编译项目,同时发出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

这是我的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>

解决方法

这里的答案与Groovy邮件列表上的答案相同,也许更多的解释可能……在Groovy中我们有脚本和类.类是具有类结构的所有类,如Java.例如,类B {}是类结构并定义了类B.脚本也是类,但它们不在这样的结构中.如果你现在有“class B {}; def b = new B()”,你有一个B类的类结构,还有一个内容为“def b = new B()”的脚本.正如我所说,这也是一个班级,但那个班级的名字是什么?名称由文件名定义,该脚本定义在该文件中(如果没有文件,则选择类似script1456的名称).现在你可以创建一个B.groovy,内容为“class B {}; def b = new B()”.将有一个名为B的类和一个名称相同的脚本.这是一场冲突.

如果您为文件指定其他名称,则完全没问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读