首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用gmavenplus插件编译特性

无法使用gmavenplus插件编译特性
EN

Stack Overflow用户
提问于 2015-08-26 10:33:33
回答 1查看 484关注 0票数 0

我有一个特点:

代码语言:javascript
复制
trait AbstractSender {

    abstract SentTrigger sendMail(Mail main)

    SentTrigger sentTrigger(Mail mail){
        //do smth here
    }
}

我还有一堂课:

代码语言:javascript
复制
class EmailSender implements AbstractSender{

    @Override
    SentTrigger sendMail(Mail mail){
        //do some stuff
    }
}

我试着用gmavenplus插件编译它:

代码语言:javascript
复制
<plugin>
                    <groupId>org.codehaus.gmavenplus</groupId>
                    <artifactId>gmavenplus-plugin</artifactId>
                    <version>1.5</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>addSources</goal>
                                <goal>addTestSources</goal>
                                <goal>generateStubs</goal>
                                <goal>compile</goal>
                                <goal>testGenerateStubs</goal>
                                <goal>testCompile</goal>
                                <goal>removeStubs</goal>
                                <goal>removeTestStubs</goal>
                            </goals>
                        </execution>
                    </executions>
<dependencies>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-all</artifactId>
                        <!-- any version of Groovy \>= 1.5.0 should work here -->
                        <version>2.4.4</version>
                        <scope>runtime</scope>
                    </dependency>
                </dependencies>
                </plugin>

并获得编译异常:

EmailSender不是抽象的,也不覆盖AbstractSender中的抽象方法sentTrigger。

方法实现了sentTrigger。生成的java代码是这样的:

代码语言:javascript
复制
@groovy.transform.Trait() public interface AbstractSender
 {
;
 SentTrigger sendMail(Mail mail);
 sentTrigger sentTrigger(Mail mail);
}

这确实解释了编译错误。我对gmavenplus插件做了什么错事?

EN

回答 1

Stack Overflow用户

发布于 2015-08-26 15:23:07

这不是GMavenPlus配置问题。你可以把这个放到你的GroovyConsole中来演示

代码语言:javascript
复制
trait AbstractSender {
  abstract SentTrigger send(Mail main)

  SentTrigger sentTrigger(Mail mail) { }
}

class EmailSender implements AbstractSender{
  @Override
  SentTrigger sendMail(Mail mail) { }
}

class Mail { }
class SentTrigger { }

new  EmailSender()

你看到的错误信息是正确的。EmailSender只实现sendMail(),而不是send()。如果将sendMail()重命名为send(),则应该正确编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32224258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档