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:
- alpn-api-1.1.3.v20160715.jar
- jboss-logging-3.3.1.Final.jar
- jboss-logmanager-2.0.9.Final.jar
- jboss-logging-annotations-2.1.0.Final.jar
- jboss-threads-2.3.0.Final.jar
- undertow-core-2.0.0.Beta1.jar
- wildfly-client-config-1.0.0.Final.jar
- wildfly-common-1.3.0.Final.jar
- xnio-api-3.6.0.Final.jar
- xnio-nio-3.6.0.Final.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" 网络服务器来说,我仍然觉得太过分了。
我正在尝试组装独立版本的 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:
- alpn-api-1.1.3.v20160715.jar
- jboss-logging-3.3.1.Final.jar
- jboss-logmanager-2.0.9.Final.jar
- jboss-logging-annotations-2.1.0.Final.jar
- jboss-threads-2.3.0.Final.jar
- undertow-core-2.0.0.Beta1.jar
- wildfly-client-config-1.0.0.Final.jar
- wildfly-common-1.3.0.Final.jar
- xnio-api-3.6.0.Final.jar
- xnio-nio-3.6.0.Final.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" 网络服务器来说,我仍然觉得太过分了。