eclipse不会生成注释流程类,但m2e-apt工作正常

问题描述 投票:0回答:1

有一个名为HttpRequestParser的类使用注释过程并且应该生成HttpRequestParser$$generated

首先,m2e-apt工作正常,因为它正确生成generated-sources

我试着举个例子

        Undertow server = Undertow.builder()
                .addHttpListener(8080, "localhost")
                .setHandler(new HttpHandler() {
                    @Override
                    public void handleRequest(final HttpServerExchange exchange) throws Exception {
                        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
                        exchange.getResponseSender().send("Hello World");
                    }
                }).build();
        server.start();  

但有错误

Mar 27, 2019 10:50:55 PM org.xnio.Xnio <clinit>
INFO: XNIO version 3.3.8.Final
Mar 27, 2019 10:50:55 PM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.3.8.Final
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: io.undertow.server.protocol.http.HttpRequestParser$$generated
    at io.undertow.Undertow.start(Undertow.java:247)
    at io.github.fairjm.undertow.examples.HelloWorldServer.main(HelloWorldServer.java:20)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: io.undertow.server.protocol.http.HttpRequestParser$$generated
    at io.undertow.server.protocol.http.HttpRequestParser.instance(HttpRequestParser.java:221)
    at io.undertow.server.protocol.http.HttpOpenListener.<init>(HttpOpenListener.java:93)
    at io.undertow.Undertow.start(Undertow.java:179)
    ... 1 more
Caused by: java.lang.ClassNotFoundException: io.undertow.server.protocol.http.HttpRequestParser$$generated
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at io.undertow.server.protocol.http.HttpRequestParser.instance(HttpRequestParser.java:216)
    ... 3 more

UndertowLogger_$logger由m2e-apt生成,因此日志正常。

我尝试运行mvn clean compile,然后在HttpRequestParser$$generated生成target\classes(并且它没有生成源)。

我需要做什么让eclipse生成它们?

java eclipse undertow
1个回答
0
投票

Emmmmm ... 我感到很尴尬..在打字过程中,我问自己有没有将处理器jar添加到工厂路径,然后我检查了它发现没有... 把undertow-parser-generator放到undertow-core ast工厂路径后。 它终于奏效了。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.