CLOVER🍀

That was when it all began.

WildFlyのBOMを確認する

これは、なにをしたくて書いたもの?

Jakarta EE PlatformおよびProfileとMicroProfileのBOMなどについて、少しまとめておきました。

Jakarta EE PlatformおよびProfileとMicroProfileのJARとBOMについて - CLOVER🍀

こういうのを書くと、実装側のBOMも知りたくなるのですが。今回はWildFlyを見ていこうと思います。

WildFlyのBOM

「WildFly BOM」あたりで調べると、すぐに以下のリポジトリーが見つかると思います。

GitHub - wildfly/boms: Various Useful WildFly BOMs

ですが、こちらはアーカイブされています。

その割にはグループIDがorg.wildfly.bomのものを探すと、最新のWildFlyのバージョンのものが見つかります。

https://search.maven.org/search?q=g:org.wildfly.bom

これはどうなっているのか?というと、WildFlyのリポジトリー内に移っているようです。こちらからMaven Pluginを使ってBOMを作成している
ようです。

https://github.com/wildfly/wildfly/tree/32.0.1.Final/boms

利用者向けのBOMを作成する定義はこちらですね。

https://github.com/wildfly/wildfly/tree/32.0.1.Final/boms/user

これらのBOMを作成するのに使っているMaven Pluginがこちらのようです。

GitHub - wildfly/wildfly-bom-builder-plugin: Plugin to generate the BOMs and the component matrix

話を戻しまして。利用者向けのBOMは以下の6種類があるようです。

  • org.wildfly:wildfly-ejb-client-bom … EJBクライアント用
  • org.wildfly:wildfly-jaxws-client-bom … JAX-WSクライアント用
  • org.wildfly:wildfly-jms-client-bom … JMSクライアント用
  • org.wildfly.bom:wildfly-ee … EE用
  • org.wildfly.bom:wildfly-ee-with-tools … EE+ツール用
  • org.wildfly.bom:wildfly-microprofile … MicroProfile用

よく見ると、最初の3つはグループIDがorg.wildflyですね。

主に使うのはグループIDがorg.wildfly.bomだと思うので、こちらに含まれてる依存関係を確認しておきましょう。

確認するWildFlyのバージョンは32.0.1.Finalとします。

EE

こちらですね。

https://search.maven.org/artifact/org.wildfly.bom/wildfly-ee/32.0.1.Final/pom

含まれる依存関係はこちらです。

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-ejb-client-bom</artifactId>
        <version>${version.org.wildfly}</version>
        <type>pom</type>
      </dependency>
      <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-jaxws-client-bom</artifactId>
        <version>${version.org.wildfly}</version>
        <type>pom</type>
      </dependency>
      <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-jms-client-bom</artifactId>
        <version>${version.org.wildfly}</version>
        <type>pom</type>
      </dependency>
      <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-clustering-singleton-api</artifactId>
        <version>${version.org.wildfly}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-clustering-server-api</artifactId>
        <version>${version.org.wildfly}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-clustering-service</artifactId>
        <version>${version.org.wildfly}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.msc</groupId>
        <artifactId>jboss-msc</artifactId>
        <version>${version.org.jboss.msc}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jdk8</artifactId>
        <version>${version.com.fasterxml.jackson.datatype}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${version.com.fasterxml.jackson.core}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${version.com.fasterxml.jackson.core}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
        <version>${version.com.fasterxml.jackson.datatype}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${version.com.fasterxml.jackson.core}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.activation</groupId>
        <artifactId>jakarta.activation-api</artifactId>
        <version>${version.jakarta.activation}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>${version.jakarta.annotation}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.batch</groupId>
        <artifactId>jakarta.batch-api</artifactId>
        <version>${version.jakarta.batch}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.ejb</groupId>
        <artifactId>jakarta.ejb-api</artifactId>
        <version>${version.jakarta.ejb}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.enterprise</groupId>
        <artifactId>jakarta.enterprise.cdi-api</artifactId>
        <version>${version.jakarta.enterprise}</version>
        <exclusions>
          <exclusion>
            <groupId>jakarta.el</groupId>
            <artifactId>jakarta.el-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>jakarta.enterprise</groupId>
        <artifactId>jakarta.enterprise.lang-model</artifactId>
        <version>${version.jakarta.enterprise}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.enterprise.concurrent</groupId>
        <artifactId>jakarta.enterprise.concurrent-api</artifactId>
        <version>${version.jakarta.enterprise.concurrent}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.faces</groupId>
        <artifactId>jakarta.faces-api</artifactId>
        <version>${version.jakarta.faces}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.inject</groupId>
        <artifactId>jakarta.inject-api</artifactId>
        <version>${version.jakarta.inject}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.jms</groupId>
        <artifactId>jakarta.jms-api</artifactId>
        <version>${version.jakarta.jms}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.json.bind</groupId>
        <artifactId>jakarta.json.bind-api</artifactId>
        <version>${version.jakarta.json.bind}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.mail</groupId>
        <artifactId>jakarta.mail-api</artifactId>
        <version>${version.jakarta.mail}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.persistence</groupId>
        <artifactId>jakarta.persistence-api</artifactId>
        <version>${version.jakarta.persistence}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.resource</groupId>
        <artifactId>jakarta.resource-api</artifactId>
        <version>${version.jakarta.resource}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.security.enterprise</groupId>
        <artifactId>jakarta.security.enterprise-api</artifactId>
        <version>${version.jakarta.security.enterprise}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>${version.jakarta.servlet}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.servlet.jsp</groupId>
        <artifactId>jakarta.servlet.jsp-api</artifactId>
        <version>${version.jakarta.servlet.jsp}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.servlet.jsp.jstl</groupId>
        <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
        <version>${version.jakarta.servlet.jsp.jstl}</version>
        <exclusions>
          <exclusion>
            <groupId>jakarta.el</groupId>
            <artifactId>jakarta.el-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>jakarta.transaction</groupId>
        <artifactId>jakarta.transaction-api</artifactId>
        <version>${version.jakarta.transaction}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.validation</groupId>
        <artifactId>jakarta.validation-api</artifactId>
        <version>${version.jakarta.validation}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.websocket</groupId>
        <artifactId>jakarta.websocket-api</artifactId>
        <version>${version.jakarta.websocket}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.websocket</groupId>
        <artifactId>jakarta.websocket-client-api</artifactId>
        <version>${version.jakarta.websocket}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.ws.rs</groupId>
        <artifactId>jakarta.ws.rs-api</artifactId>
        <version>${version.jakarta.ws.rs}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.xml.bind</groupId>
        <artifactId>jakarta.xml.bind-api</artifactId>
        <version>${version.jakarta.xml.bind}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.orm</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${version.org.hibernate.orm}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.common</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>${version.org.hibernate.common}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>jandex</artifactId>
        <version>${version.io.smallrye}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml</groupId>
        <artifactId>classmate</artifactId>
        <version>${version.com.fasterxml}</version>
      </dependency>
      <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy</artifactId>
        <version>${version.net.bytebuddy}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>${version.org.glassfish.jaxb}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.activation</groupId>
            <artifactId>javax.activation-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.antlr</groupId>
        <artifactId>antlr4-runtime</artifactId>
        <version>${version.org.antlr}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.orm</groupId>
        <artifactId>hibernate-envers</artifactId>
        <version>${version.org.hibernate.orm}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.search</groupId>
        <artifactId>hibernate-search-backend-elasticsearch</artifactId>
        <version>${version.org.hibernate.search}</version>
      </dependency>
      <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-client</artifactId>
        <version>${version.org.elasticsearch.client}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>${version.org.apache.httpcomponents.httpcore}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpasyncclient</artifactId>
        <version>${version.org.apache.httpcomponents.httpasyncclient}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore-nio</artifactId>
        <version>${version.org.apache.httpcomponents.httpcore-nio}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-client-sniffer</artifactId>
        <version>${version.org.elasticsearch.client}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${version.com.google.code.gson}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.search</groupId>
        <artifactId>hibernate-search-backend-lucene</artifactId>
        <version>${version.org.hibernate.search}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-highlighter</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-core</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-analysis-common</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-queryparser</artifactId>
        <version>${version.org.apache.lucene}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-sandbox</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-queries</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-join</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-facet</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>com.carrotsearch</groupId>
        <artifactId>hppc</artifactId>
        <version>${version.com.carrotsearch}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.search</groupId>
        <artifactId>hibernate-search-engine</artifactId>
        <version>${version.org.hibernate.search}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.search</groupId>
        <artifactId>hibernate-search-mapper-orm</artifactId>
        <version>${version.org.hibernate.search}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.search</groupId>
        <artifactId>hibernate-search-mapper-pojo-base</artifactId>
        <version>${version.org.hibernate.search}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.search</groupId>
        <artifactId>hibernate-search-util-common</artifactId>
        <version>${version.org.hibernate.search}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>${version.org.hibernate.validator}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator-cdi</artifactId>
        <version>${version.org.hibernate.validator}</version>
      </dependency>
      <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-core-jakarta</artifactId>
        <version>${version.org.infinispan}</version>
      </dependency>
      <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-commons-jakarta</artifactId>
        <version>${version.org.infinispan}</version>
      </dependency>
      <dependency>
        <groupId>io.reactivex.rxjava3</groupId>
        <artifactId>rxjava</artifactId>
        <version>${version.io.reactivex.rxjava3}</version>
      </dependency>
      <dependency>
        <groupId>org.infinispan.protostream</groupId>
        <artifactId>protostream</artifactId>
        <version>${version.org.infinispan.protostream}</version>
        <exclusions>
          <exclusion>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.squareup</groupId>
        <artifactId>protoparser</artifactId>
        <version>${version.com.squareup}</version>
      </dependency>
      <dependency>
        <groupId>org.infinispan.protostream</groupId>
        <artifactId>protostream-types</artifactId>
        <version>${version.org.infinispan.protostream}</version>
      </dependency>
      <dependency>
        <groupId>org.jgroups</groupId>
        <artifactId>jgroups</artifactId>
        <version>${version.org.jgroups}</version>
      </dependency>
      <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>${version.com.github.ben-manes.caffeine}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.errorprone</groupId>
            <artifactId>error_prone_annotations</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.checkerframework</groupId>
            <artifactId>checker-qual</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jboss.threads</groupId>
        <artifactId>jboss-threads</artifactId>
        <version>${version.org.jboss.threads}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.ejb3</groupId>
        <artifactId>jboss-ejb3-ext-api</artifactId>
        <version>${version.org.jboss.ejb3}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.narayana.xts</groupId>
        <artifactId>jbossxts</artifactId>
        <version>${version.org.jboss.narayana.xts}</version>
        <classifier>api</classifier>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-atom-provider</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${version.org.apache.httpcomponents.httpclient}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${version.commons-codec}</version>
      </dependency>
      <dependency>
        <groupId>org.reactivestreams</groupId>
        <artifactId>reactive-streams</artifactId>
        <version>${version.org.reactivestreams}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client-api</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-core</artifactId>
        <version>${version.org.jboss.resteasy}</version>
        <exclusions>
          <exclusion>
            <groupId>org.jboss</groupId>
            <artifactId>jandex</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.eclipse.angus</groupId>
        <artifactId>angus-activation</artifactId>
        <version>${version.org.eclipse.angus.angus-activation}</version>
      </dependency>
      <dependency>
        <groupId>com.ibm.async</groupId>
        <artifactId>asyncutil</artifactId>
        <version>${version.com.ibm.async}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-core-spi</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson2-provider</artifactId>
        <version>${version.org.jboss.resteasy}</version>
        <exclusions>
          <exclusion>
            <groupId>com.github.java-json-tools</groupId>
            <artifactId>json-patch</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
        <artifactId>jackson-jakarta-rs-base</artifactId>
        <version>${version.com.fasterxml.jackson.jakarta.rs}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
        <artifactId>jackson-jakarta-rs-json-provider</artifactId>
        <version>${version.com.fasterxml.jackson.jakarta.rs}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jakarta-xmlbind-annotations</artifactId>
        <version>${version.com.fasterxml.jackson.module}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxb-provider</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>codemodel</artifactId>
        <version>${version.org.glassfish.jaxb}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>${version.org.glassfish.jaxb}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-jxc</artifactId>
        <version>${version.org.glassfish.jaxb}</version>
        <exclusions>
          <exclusion>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>txw2</artifactId>
        <version>${version.org.glassfish.jaxb}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-xjc</artifactId>
        <version>${version.org.glassfish.jaxb}</version>
        <exclusions>
          <exclusion>
            <groupId>com.sun.xml.dtd-parser</groupId>
            <artifactId>dtd-parser</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>xsom</artifactId>
        <version>${version.org.glassfish.jaxb}</version>
        <exclusions>
          <exclusion>
            <groupId>relaxngDatatype</groupId>
            <artifactId>relaxngDatatype</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.sun.istack</groupId>
        <artifactId>istack-commons-runtime</artifactId>
        <version>${version.com.sun.istack}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.istack</groupId>
        <artifactId>istack-commons-tools</artifactId>
        <version>${version.com.sun.istack}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind.external</groupId>
        <artifactId>relaxng-datatype</artifactId>
        <version>${version.com.sun.xml.bind.external}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind.external</groupId>
        <artifactId>rngom</artifactId>
        <version>${version.com.sun.xml.bind.external}</version>
        <exclusions>
          <exclusion>
            <groupId>relaxngDatatype</groupId>
            <artifactId>relaxngDatatype</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jsapi</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-json-binding-provider</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.parsson</groupId>
        <artifactId>parsson</artifactId>
        <version>${version.org.eclipse.parsson}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse</groupId>
        <artifactId>yasson</artifactId>
        <version>${version.org.eclipse}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-json-p-provider</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-multipart-provider</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.angus</groupId>
        <artifactId>angus-mail</artifactId>
        <version>${version.org.eclipse.angus.angus-mail}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.james</groupId>
        <artifactId>apache-mime4j-dom</artifactId>
        <version>${version.org.apache.james}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.james</groupId>
        <artifactId>apache-mime4j-core</artifactId>
        <version>${version.org.apache.james}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.james</groupId>
        <artifactId>apache-mime4j-storage</artifactId>
        <version>${version.org.apache.james}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${version.commons-io}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-validator-provider</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.spec.jakarta.el</groupId>
        <artifactId>jboss-el-api_5.0_spec</artifactId>
        <version>${version.org.jboss.spec.jakarta.el}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.spec.jakarta.xml.soap</groupId>
        <artifactId>jboss-saaj-api_3.0_spec</artifactId>
        <version>${version.org.jboss.spec.jakarta.xml.soap}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.spec.jakarta.xml.ws</groupId>
        <artifactId>jboss-jakarta-xml-ws-api_4.0_spec</artifactId>
        <version>${version.org.jboss.spec.jakarta.xml.ws}</version>
        <exclusions>
          <exclusion>
            <groupId>jakarta.xml.soap</groupId>
            <artifactId>jakarta.xml.soap-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>jakarta.authentication</groupId>
        <artifactId>jakarta.authentication-api</artifactId>
        <version>${version.jakarta.authentication}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.authorization</groupId>
        <artifactId>jakarta.authorization-api</artifactId>
        <version>${version.jakarta.authorization}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.interceptor</groupId>
        <artifactId>jakarta.interceptor-api</artifactId>
        <version>${version.jakarta.interceptor}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.json</groupId>
        <artifactId>jakarta.json-api</artifactId>
        <version>${version.jakarta.json}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>commons-logging-jboss-logging</artifactId>
        <version>${version.org.jboss.logging.commons-logging-jboss-logging}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging</artifactId>
        <version>${version.org.jboss.logging.jboss-logging}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.client</groupId>
        <artifactId>wildfly-client-config</artifactId>
        <version>${version.org.wildfly.client}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.common</groupId>
        <artifactId>wildfly-common</artifactId>
        <version>${version.org.wildfly.common}</version>
        <exclusions>
          <exclusion>
            <groupId>org.wildfly.security</groupId>
            <artifactId>wildfly-security-manager</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.wildfly.discovery</groupId>
        <artifactId>wildfly-discovery-client</artifactId>
        <version>${version.org.wildfly.discovery}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron</artifactId>
        <version>${version.org.wildfly.security}</version>
        <exclusions>
          <exclusion>
            <groupId>org.wildfly.security</groupId>
            <artifactId>wildfly-elytron-sasl-deprecated</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.wildfly.security</groupId>
            <artifactId>wildfly-elytron-x500-deprecated</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.wildfly.security</groupId>
            <artifactId>wildfly-elytron-credential-source-deprecated</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.wildfly.security</groupId>
            <artifactId>wildfly-elytron-http-deprecated</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-asn1</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-audit</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-auth</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-auth-server</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-auth-server-deprecated</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-auth-server-http</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-auth-server-sasl</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-auth-util</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.sshd</groupId>
        <artifactId>sshd-common</artifactId>
        <version>${version.org.apache.sshd}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${version.org.slf4j}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${version.org.slf4j}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-base</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-client</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-credential-source-impl</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-provider-util</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-credential</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-credential-store</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-digest</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-dynamic-ssl</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-encryption</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http-basic</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http-bearer</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http-cert</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http-digest</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http-external</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http-form</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http-oidc</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.bitbucket.b_c</groupId>
        <artifactId>jose4j</artifactId>
        <version>${version.org.bitbucket.b_c}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http-spnego</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http-sso</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-http-util</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-json-util</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-jose-jwk</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-jose-util</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-keystore</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-mechanism</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-mechanism-digest</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-mechanism-gssapi</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-mechanism-http</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-mechanism-oauth2</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-mechanism-scram</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-password-impl</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-permission</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-realm</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-realm-jdbc</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-realm-ldap</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-realm-token</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-anonymous</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-auth-util</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-digest</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-entity</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-external</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-gs2</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-gssapi</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-localuser</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-oauth2</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-otp</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-plain</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-sasl-scram</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-security-manager</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-security-manager-action</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-ssl</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-ssh-util</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-util</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-x500</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-x500-cert</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-x500-cert-acme</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-x500-cert-util</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron-x500-principal</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging-annotations</artifactId>
        <version>${version.org.jboss.logging.jboss-logging-annotations}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging-processor</artifactId>
        <version>${version.org.jboss.logging.jboss-logging-processor}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator-annotation-processor</artifactId>
        <version>${version.org.hibernate.validator}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.orm</groupId>
        <artifactId>hibernate-jpamodelgen</artifactId>
        <version>${version.org.hibernate.orm}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

EE+ツール

EE+ツールはこちら。

https://search.maven.org/artifact/org.wildfly.bom/wildfly-ee-with-tools/32.0.1.Final/pom

EE+ツールは、EEを親pomとしているのでその差分定義になっています。

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${version.junit}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.jboss.arquillian.container</groupId>
        <artifactId>arquillian-container-test-spi</artifactId>
        <version>${version.org.jboss.arquillian.container}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-container</artifactId>
        <version>${version.org.jboss.arquillian.junit}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.wildfly.arquillian</groupId>
        <artifactId>wildfly-arquillian-common</artifactId>
        <version>${version.org.wildfly.arquillian}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.arquillian</groupId>
        <artifactId>wildfly-arquillian-container-managed</artifactId>
        <version>${version.org.wildfly.arquillian}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${version.org.apache.httpcomponents}</version>
      </dependency>
      <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>${version.com.h2database}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.arquillian</groupId>
        <artifactId>wildfly-arquillian-container-remote</artifactId>
        <version>${version.org.wildfly.arquillian}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.arquillian.protocol</groupId>
        <artifactId>arquillian-protocol-servlet-jakarta</artifactId>
        <version>${version.org.jboss.arquillian.protocol}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.arquillian.junit5</groupId>
        <artifactId>arquillian-junit5-container</artifactId>
        <version>${version.org.jboss.arquillian.junit5}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

JUnitやArquillianが追加されている感じですね。

MicroProfile

最後はMicroProfileです。

https://search.maven.org/artifact/org.wildfly.bom/wildfly-microprofile/32.0.1.Final/pom

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>${version.jakarta.annotation}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.enterprise</groupId>
        <artifactId>jakarta.enterprise.cdi-api</artifactId>
        <version>${version.jakarta.enterprise}</version>
        <exclusions>
          <exclusion>
            <groupId>jakarta.el</groupId>
            <artifactId>jakarta.el-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>jakarta.enterprise</groupId>
        <artifactId>jakarta.enterprise.lang-model</artifactId>
        <version>${version.jakarta.enterprise}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.inject</groupId>
        <artifactId>jakarta.inject-api</artifactId>
        <version>${version.jakarta.inject}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.json.bind</groupId>
        <artifactId>jakarta.json.bind-api</artifactId>
        <version>${version.jakarta.json.bind}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.ws.rs</groupId>
        <artifactId>jakarta.ws.rs-api</artifactId>
        <version>${version.jakarta.ws.rs}</version>
      </dependency>
      <dependency>
        <groupId>org.reactivestreams</groupId>
        <artifactId>reactive-streams</artifactId>
        <version>${version.org.reactivestreams}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.interceptor</groupId>
        <artifactId>jakarta.interceptor-api</artifactId>
        <version>${version.jakarta.interceptor}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.json</groupId>
        <artifactId>jakarta.json-api</artifactId>
        <version>${version.jakarta.json}</version>
      </dependency>
      <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-core</artifactId>
        <version>${version.io.micrometer}</version>
        <exclusions>
          <exclusion>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-observation</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.hdrhistogram</groupId>
            <artifactId>HdrHistogram</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.latencyutils</groupId>
            <artifactId>LatencyUtils</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-commons</artifactId>
        <version>${version.io.micrometer}</version>
      </dependency>
      <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-api</artifactId>
        <version>${version.io.opentelemetry}</version>
      </dependency>
      <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-context</artifactId>
        <version>${version.io.opentelemetry}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.config</groupId>
        <artifactId>smallrye-config</artifactId>
        <version>${version.io.smallrye.config}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.config</groupId>
        <artifactId>smallrye-config-core</artifactId>
        <version>${version.io.smallrye.config}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.common</groupId>
        <artifactId>smallrye-common-annotation</artifactId>
        <version>${version.io.smallrye.common}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.common</groupId>
        <artifactId>smallrye-common-expression</artifactId>
        <version>${version.io.smallrye.common}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.common</groupId>
        <artifactId>smallrye-common-function</artifactId>
        <version>${version.io.smallrye.common}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.common</groupId>
        <artifactId>smallrye-common-constraint</artifactId>
        <version>${version.io.smallrye.common}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.common</groupId>
        <artifactId>smallrye-common-classloader</artifactId>
        <version>${version.io.smallrye.common}</version>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm</artifactId>
        <version>${version.org.ow2.asm}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.config</groupId>
        <artifactId>smallrye-config-common</artifactId>
        <version>${version.io.smallrye.config}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging</artifactId>
        <version>${version.org.jboss.logging}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.reactive</groupId>
        <artifactId>smallrye-reactive-messaging-kafka-api</artifactId>
        <version>${version.io.smallrye.reactive.smallrye-reactive-messaging-kafka-api}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.reactive</groupId>
        <artifactId>smallrye-reactive-converter-api</artifactId>
        <version>${version.io.smallrye.reactive.smallrye-reactive-converter-api}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.reactive</groupId>
        <artifactId>mutiny</artifactId>
        <version>${version.io.smallrye.reactive.mutiny}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.reactive</groupId>
        <artifactId>mutiny-zero</artifactId>
        <version>${version.io.smallrye.reactive.mutiny-zero}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye.reactive</groupId>
        <artifactId>mutiny-zero-flow-adapters</artifactId>
        <version>${version.io.smallrye.reactive.mutiny-zero-flow-adapters}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>${version.org.apache.kafka}</version>
      </dependency>
      <dependency>
        <groupId>com.github.luben</groupId>
        <artifactId>zstd-jni</artifactId>
        <version>${version.com.github.luben}</version>
      </dependency>
      <dependency>
        <groupId>org.lz4</groupId>
        <artifactId>lz4-java</artifactId>
        <version>${version.org.lz4}</version>
      </dependency>
      <dependency>
        <groupId>org.xerial.snappy</groupId>
        <artifactId>snappy-java</artifactId>
        <version>${version.org.xerial.snappy}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${version.org.slf4j}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.config</groupId>
        <artifactId>microprofile-config-api</artifactId>
        <version>${version.org.eclipse.microprofile.config}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.fault-tolerance</groupId>
        <artifactId>microprofile-fault-tolerance-api</artifactId>
        <version>${version.org.eclipse.microprofile.fault-tolerance}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.health</groupId>
        <artifactId>microprofile-health-api</artifactId>
        <version>${version.org.eclipse.microprofile.health}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.jwt</groupId>
        <artifactId>microprofile-jwt-auth-api</artifactId>
        <version>${version.org.eclipse.microprofile.jwt}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.lra</groupId>
        <artifactId>microprofile-lra-api</artifactId>
        <version>${version.org.eclipse.microprofile.lra}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.openapi</groupId>
        <artifactId>microprofile-openapi-api</artifactId>
        <version>${version.org.eclipse.microprofile.openapi}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.reactive-streams-operators</groupId>
        <artifactId>microprofile-reactive-streams-operators-api</artifactId>
        <version>${version.org.eclipse.microprofile.reactive-streams-operators}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.reactive.messaging</groupId>
        <artifactId>microprofile-reactive-messaging-api</artifactId>
        <version>${version.org.eclipse.microprofile.reactive.messaging}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.microprofile.rest.client</groupId>
        <artifactId>microprofile-rest-client-api</artifactId>
        <version>${version.org.eclipse.microprofile.rest.client}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy.microprofile</groupId>
        <artifactId>microprofile-rest-client</artifactId>
        <version>${version.org.jboss.resteasy.microprofile}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy.microprofile</groupId>
        <artifactId>microprofile-rest-client-base</artifactId>
        <version>${version.org.jboss.resteasy.microprofile}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client-api</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-core-spi</artifactId>
        <version>${version.org.jboss.resteasy}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.xml.bind</groupId>
        <artifactId>jakarta.xml.bind-api</artifactId>
        <version>${version.jakarta.xml.bind}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.validation</groupId>
        <artifactId>jakarta.validation-api</artifactId>
        <version>${version.jakarta.validation}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-core</artifactId>
        <version>${version.org.jboss.resteasy}</version>
        <exclusions>
          <exclusion>
            <groupId>org.jboss</groupId>
            <artifactId>jandex</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>jakarta.activation</groupId>
        <artifactId>jakarta.activation-api</artifactId>
        <version>${version.jakarta.activation}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.angus</groupId>
        <artifactId>angus-activation</artifactId>
        <version>${version.org.eclipse.angus}</version>
      </dependency>
      <dependency>
        <groupId>com.ibm.async</groupId>
        <artifactId>asyncutil</artifactId>
        <version>${version.com.ibm.async}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${version.org.apache.httpcomponents.httpclient}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>${version.org.apache.httpcomponents.httpcore}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${version.commons-codec}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

いくつかサンプルを

これで終わってもなんなので、いくつかサンプルを載せておきましょう。

EE
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.wildfly.bom</groupId>
                <artifactId>wildfly-ee</artifactId>
                <version>32.0.1.Final</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-core</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
EE+ツール
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.wildfly.bom</groupId>
                <artifactId>wildfly-ee-with-tools</artifactId>
                <version>32.0.1.Final</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>5.10.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-core</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.arquillian.junit5</groupId>
            <artifactId>arquillian-junit5-container</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.wildfly.arquillian</groupId>
            <artifactId>wildfly-arquillian-container-remote</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

なんとなく、JUnit 5のBOMもつけておきました。

WildFlyのBOMにはJUnit 5の依存関係は定義されていないので、合わせて使うことになるでしょうし。

MicroProfile
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.wildfly.bom</groupId>
                <artifactId>wildfly-microprofile</artifactId>
                <version>32.0.1.Final</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>io.smallrye.config</groupId>
            <artifactId>smallrye-config</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-core</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

wildfly-microprofileだけだとWeb Profileのものやテスト用のものが入らないので、wildfly-eeまたはwildfly-ee-with-toolsと組み合わせて
使うことになると思います。

おわりに

WildFlyのBOMについてまとめてみました。

ちょっと使いたくなった事情があったので調べてみたのですが、ちゃんと把握しておくいい機会になりました。

Jakarta EE PlatformおよびProfileとMicroProfileのJARとBOMについて

これは、なにをしたくて書いたもの?

Jakarta EE PlatformおよびProfileおよびMicroProfileで使うAPIのJARやBOMについて、少しまとめておきたいと思いまして。

ここでは、Jakarta Servletといった個々の仕様の話よりも、Web Profileといったある程度の仕様をひとまとめに扱うものを対象にします。
なので、Jakarta EE PlatformおよびProfileです。

バージョンに依存するものはJakarta EE 10とMicroProfile 6.1とします。

Jakarta EE PlatformおよびProfile

まずはJakarta EEから。

Jakarta® EE | Cloud Native Enterprise Java | Java EE | the Eclipse Foundation | The Eclipse Foundation

Jakarta EEのPlatformおよびProfileについては、Platform、Web Profile、Core Profileの3つがあります。

Jakarta EE 10での各ページはこちら。

ページ内には、これらをひとまとめにしたJARへの参照が書かれています。

たとえば、Web Profileでいえば以下をdependenciesに追加することでWeb Profileで使えるAPI仕様をまとめて取り込めます。

        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-web-api</artifactId>
            <version>10.0.0</version>
            <scope>provided</scope>
        </dependency>

ところでBOMに関する記述が見当たらないのですが、jakartaee-bomというものがあります。

https://search.maven.org/search?q=a:jakarta.jakartaee-bom

BOMなのでimportして個々のAPI仕様をdependenciesに追加していくことになります。

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>jakarta.platform</groupId>
                <artifactId>jakarta.jakartaee-bom</artifactId>
                <version>10.0.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

これらのAPIのJARやBOMは、以下のGitHubリポジトリーにあるようです。

GitHub - jakartaee/jakartaee-api: jakartaee-api

MicroProfile

続いて、MicroProfileです。

Home - MicroProfile

各バージョンのページはこちら。

MicroProfile 6.0以降は、Jakarta EE 10が必要です。

MicroProfileにもBOMがあるのですが、、こちらのGitHubリポジトリーにあるようです。

GitHub - eclipse/microprofile: Repository for important documentation - the index to the project / community

使い方はREADME.mdに書かれているのですが、2つの使い方があります。

ひとつは、BOMを単体でdependenciesに突っ込みます。scopeがprovidedになっているところがポイントです。

    <dependencies>
        <dependency>
            <groupId>org.eclipse.microprofile</groupId>
            <artifactId>microprofile</artifactId>
            <version>6.1</version>
            <type>pom</type>
            <scope>provided</scope>
        </dependency>
    </dependencies>

これで指定したMicroProfileのバージョン(ここでは、6.1)に含まれるすべてのAPI仕様が依存関係に追加されます。

mvn dependency:treeで見てみます。

$ mvn dependency:tree

こんな感じになりました。

[INFO] --- dependency:3.6.1:tree (default-cli) @ xxxxx ---
[INFO] org.xxxxx:xxxxx:war:0.0.1-SNAPSHOT
[INFO] \- org.eclipse.microprofile:microprofile:pom:6.1:provided
[INFO]    +- jakarta.platform:jakarta.jakartaee-core-api:jar:10.0.0:provided
[INFO]    |  +- jakarta.ws.rs:jakarta.ws.rs-api:jar:3.1.0:provided
[INFO]    |  +- jakarta.json:jakarta.json-api:jar:2.1.0:provided
[INFO]    |  +- jakarta.json.bind:jakarta.json.bind-api:jar:3.0.0:provided
[INFO]    |  +- jakarta.annotation:jakarta.annotation-api:jar:2.1.1:provided
[INFO]    |  +- jakarta.interceptor:jakarta.interceptor-api:jar:2.1.0:provided
[INFO]    |  +- jakarta.enterprise:jakarta.enterprise.cdi-api:jar:4.0.1:provided
[INFO]    |  +- jakarta.inject:jakarta.inject-api:jar:2.0.1:provided
[INFO]    |  \- jakarta.enterprise:jakarta.enterprise.lang-model:jar:4.0.1:provided
[INFO]    +- org.eclipse.microprofile.config:microprofile-config-api:jar:3.1:provided
[INFO]    +- org.eclipse.microprofile.fault-tolerance:microprofile-fault-tolerance-api:jar:4.0.2:provided
[INFO]    +- org.eclipse.microprofile.health:microprofile-health-api:jar:4.0.1:provided
[INFO]    +- org.eclipse.microprofile.metrics:microprofile-metrics-api:jar:5.1.0:provided
[INFO]    +- org.eclipse.microprofile.jwt:microprofile-jwt-auth-api:jar:2.1:provided
[INFO]    +- org.eclipse.microprofile.openapi:microprofile-openapi-api:jar:3.1.1:provided
[INFO]    \- org.eclipse.microprofile.rest.client:microprofile-rest-client-api:jar:3.0.1:provided

Jakarta EE Core Profileも含まれていますね。

もうひとつは、BOMとしてimportとしてMicroProfileの個々のAPI仕様をdependenciesに追加する使い方です。

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.eclipse.microprofile</groupId>
                <artifactId>microprofile</artifactId>
                <version>6.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.eclipse.microprofile.config</groupId>
            <artifactId>microprofile-config-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.microprofile.metrics</groupId>
            <artifactId>microprofile-metrics-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-core-api</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

Jakarta EE Core Profileも含めることができます。

README.mdに書かれているように、Jakara EE Core Profileに含まれる個々のAPI仕様を指定することはできないようです。

        <dependency>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
            <scope>provided</scope>
        </dependency>

こういうのを入れると、「バージョンがわからない」と言われます。

おわりに

Jakarta EE PlatformおよびProfileとMicroProfileのJARとBOMについて、ちょっとまとめておきました。

BOMの存在をよく忘れるので、覚えておこうと思います…。