为什么 JBoss/wildfly BOM 不包含所有提供的模块?

Why do the JBoss/wildfly BOMs not contain all of the provided modules?

Wildfly 8.x 附带 BOM 以方便依赖项管理:https://github.com/wildfly/boms

这些对于此处描述的基于模块的类加载很有用:https://docs.jboss.org/author/display/WFLY8/Implicit+module+dependencies+for+deployments

但是,当我查看 $JBOSS_HOME\modules\system\layers\base 时,我看到了很多很多包含的模块。比如包含commons-lang等几十个org.apache模块

这些 dep 也不在 JBoss 父 POM 中:https://github.com/jboss/jboss-parent-pom

也不是 Java EE 规格:https://github.com/jboss/jboss-javaee-specs

对于这些依赖项(不在 BOM 或文档中的依赖项),开发人员应该如何知道它们已提供?使用 Maven 等工具的开发人员的预期依赖管理策略是什么

并非服务器使用的所有模块都用于部署。有一个 implicit module dependencies.

的列表

如果您查看其中一些的 module.xml 文件,您可能会看到 属性 <property name="jboss.api" value="private"/>。这本质上只是意味着依赖关系可以随时更改。它可能会升级到不同的版本,甚至可能会被删除。最好只在部署中包含这些依赖项。