从 Wildfly 10 中排除所有模块

Posted

技术标签:

【中文标题】从 Wildfly 10 中排除所有模块【英文标题】:Exclude all modules from Wildfly 10 【发布时间】:2020-09-27 16:51:26 【问题描述】:

我正在尝试将我的 Spring-boot 应用程序部署到 wildlfy 服务器。 但是,我发现库之间存在一些冲突。 所以,我希望我的应用程序只使用我在 pom 上定义的内容,并完全忽略所有 Wildfly 模块。 有可能吗?

使用 Wildfly 10 和 spring-boot 2.x

【问题讨论】:

什么冲突? 你想在没有 JBoss(WildFly) 模块的情况下运行你的 spring-boot 应用程序吗? @nikolas 我不能确定有哪些冲突。这就是为什么我要删除所有模块。 @NafazBenzema 是的,就是这样。 你找到其他方法了吗?我不知道这是可能的。 【参考方案1】:

模块

是的,这是可能的。根据RedHat docs, §3.4,并根据我已经测试过几次的实践:您可以防止模块被隐式加载。为此:

    创建(如果尚不存在)jboss-deployment-structure.xml 文件并将其添加到该文件中:

    <jboss-deployment-structure>
        <deployment>
           <exclusions>
              <module name="org.javassist" />
              <module name="org.dom4j" />
              <module name="org.apache.commons.configuration" />
              <!--and so on.. -->
           </exclusions>
        </deployment>
     </jboss-deployment-structure>
    

    将此 (jboss-deployment-structure.xml) 文件添加到项目中(对于 Web 应用程序 (WAR),将此文件添加到 WEB-INF 目录。对于 EJB 存档 (JAR)将其添加到 META-INF 目录)。

子系统

另一方面,EAR 文件(模块)很可能包含子系统,例如 WARJAR 文件。您也可以仅从模块中排除子系统。为此,请将此 sn-p 包含在同一 (jboss-deployment-structure.xml) 文件中:

<exclude-subsystems>
  <subsystem name="SUBSYSTEM_NAME" />
</exclude-subsystems>

【讨论】:

@renanleandrof 如果对您有帮助,请告诉我。 它有所帮助,但我已经知道了。我没有的信息是我应该放在那里的模块或子模块的完整列表,以便删除所有模块。 =/ @1553537 你知道我在哪里可以找到所有要禁用的子模块的列表吗? @renanleandrof 还有一种方法可以看到这一点.. 你在本地有你的服务器吗?如果是本地的,你应该查看modules 目录。

以上是关于从 Wildfly 10 中排除所有模块的主要内容,如果未能解决你的问题,请参考以下文章

Wildfly + Eclipse 部署扫描程序

如果我不使用某些模块,是不是必须将所有模块都包含在 wildfly10.1.0 Standalone.xml 中?

将 JMX Exporter 与 Wildfly 15 一起使用时出现 NoClassDefFoundError

Jboss Wildfly resteasy 升级

如何使用 WildFly 连接到受 Kerberos 保护的 Apache Phoenix 数据源?

Wildfly 10.1 消耗所有内核