Groovy 无法使用gmavenplus插件编译trait

Groovy 无法使用gmavenplus插件编译trait,groovy,traits,Groovy,Traits,我有一个特点: trait AbstractSender { abstract SentTrigger sendMail(Mail main) SentTrigger sentTrigger(Mail mail){ //do smth here } } 我有一门课: class EmailSender implements AbstractSender{ @Override SentTrigger sendMail(Mail mai

我有一个特点:

trait AbstractSender {

    abstract SentTrigger sendMail(Mail main)

    SentTrigger sentTrigger(Mail mail){
        //do smth here
    }
}
我有一门课:

class EmailSender implements AbstractSender{

    @Override
    SentTrigger sendMail(Mail mail){
        //do some stuff
    }
}
我尝试使用gmavenplus插件编译它:

<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>

这也解释了编译错误。gmavenplus插件有什么错?

这不是gmavenplus配置问题。您可以将其放在GroovyConsole中进行演示

特征提取发送者{ sentmailmain摘要 SentTrigger sentTriggerMail{} } 类EmailSender实现了AbstractSender{ @凌驾 SentTrigger sendMailMail{} } 类邮件{} 类SentTrigger{} 新邮件发件人
您看到的错误消息是正确的。EmailSender只实现sendMail,不实现send。如果您将sendMail重命名为send,它应该可以正确编译。

对不起,是我的错!sendMail在特性上是抽象的,在具体类中被重写/实现。只是澄清一下:即使重命名了方法,您仍然会遇到这个问题吗?或者那是你的问题?是的,我仍然明白。我在准备问题描述时打印错误。其思想是特质有抽象和具体的方法。类实现trait并重写/实现抽象方法。编译器抱怨trait中的第二个具体方法没有实现。我们错过了一些东西,因为它对我有用。看一看,一旦你看到评论或公关有什么不同,我就可以重现,然后我们会更新这个问题。我刚才注意到的一件事是,你在插件中有Groovy依赖项,而不是在你的项目中,或者在你的项目中,这可能不是你在编译用例中想要的。
@groovy.transform.Trait() public interface AbstractSender
 {
;
 SentTrigger sendMail(Mail mail);
 sentTrigger sentTrigger(Mail mail);
}