我正在尝试组装Undertow的独立版本,而且我正在遇到JAR依赖地狱。我终于到达了下面的JAR列表,但我真正想要的是Undertow的独立包,其中包含所有依赖项,我似乎无法在任何地方找到它,尽管它声称“轻量级”和“可嵌入”并且“Undertow可以嵌入到应用程序中,也可以只用几行代码独立运行。”但是,在包含依赖项之后,真正的权重似乎是很多代码(大约6 MiB)。这甚至排除了一些明显的或记录在案的可选软件包,如JBoss模块和OSGI等。
除了大小,我在类路径上使用所列出的JAR,但是一堆相同的JAR无法正常工作;尝试启动服务器时出错:XNIO001001:找不到XNIO提供程序。
有人能指出我忽略的东西吗?或者我只是对“轻量级”和“可嵌入”的内容有一个老式的定义?
答案 0 :(得分:0)
上面的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
对于我来说,对于“轻量级”网络服务器来说,似乎仍然过分。