Undertow 独立 JAR

Undertow Standalone JAR

我正在尝试组装独立版本的 Undertow,但我 运行 陷入了 JAR 依赖地狱。我终于得到了以下 JAR 列表,但我真正想要的是一个包含所有依赖项的 Undertow 独立包,尽管它声称是 "lightweight" 和 "embeddable" 和那个 "Undertow can be embedded in an application or run standalone with just a few lines of code." 但是,在包含依赖项之后,真正的重量似乎有很多代码(大约 6 MiB)。这甚至不包括一些明显的或记录在案的可选包,如 JBoss 模块和 OSGI 等

撇开大小不谈,我可以使用类路径中列出的 JAR 进行所有操作,但是一组相同的 JAR 无法正常工作;我在尝试启动服务器时遇到错误:XNIO001001:找不到 XNIO 提供程序。

有人能指出我忽略的地方吗?或者我只是对什么是 "lightweight" 和 "embeddable" 有一个老式的定义?

正在捆绑的 JAR:

上面的 JAR 列表似乎确实有效,但我必须配置 ProGuard 以保留其中的 META-INF/services 文件夹,同时删除其他元信息,如下所示:

# Combining JARs Only
-dontobfuscate
-dontshrink

-injars <DISTRO>/WebServer.internal.jar(!**/Z*)
-injars <DISTRO>/../lib/alpn-api-1.1.3.v20160715.jar(META-INF/services/**,!META-INF/**)
-injars <DISTRO>/../lib/jboss-logging-3.3.1.Final.jar(META-INF/services/**,!META-INF/**)
-injars <DISTRO>/../lib/jboss-logging-annotations-2.1.0.Final.jar(META-INF/services/**,!META-INF/**)
-injars <DISTRO>/../lib/jboss-logmanager-2.0.9.Final.jar(META-INF/services/**,!META-INF/**)
-injars <DISTRO>/../lib/jboss-threads-2.3.0.Final.jar(META-INF/services/**,!META-INF/**)
-injars <DISTRO>/../lib/undertow-core-1.4.22.Final.jar(META-INF/services/**,!META-INF/**,**)
-injars <DISTRO>/../lib/wildfly-client-config-1.0.0.Final.jar(META-INF/services/**,!META-INF/**)
-injars <DISTRO>/../lib/wildfly-common-1.3.0.Final.jar(META-INF/services/**,!META-INF/**)
-injars <DISTRO>/../lib/xnio-api-3.6.0.Final.jar(META-INF/services/**,!META-INF/**)
-injars <DISTRO>/../lib/xnio-nio-3.6.0.Final.jar(META-INF/services/**,!META-INF/**)

-outjars <DISTRO>/WebServer.jar

对于 "lightweight" 网络服务器来说,我仍然觉得太过分了。