6.2. 将 JBoss EAP 7.4 应用的 Maven 项目迁移到 JBoss EAP 8.1
如果您的 Maven 项目使用 JBoss EAP 7.4 BOMs 来管理依赖项,则必须在迁移到 JBoss EAP 8.1 时更新其 pom.xml 文件。这是必要的,因为 JBoss EAP 8.0 BOMs 中的以下主要变化:
迁移到 JBoss EAP 8.1 时,请考虑以下事项:
- 在不更改的情况下迁移会导致依赖项不正确,并可能导致部署失败。
- 更新 Maven 项目后,您可能需要应用从 JBoss EAP 7.4 迁移时 从 JBoss EAP BOM 中删除的 Elytron shaded 工件 中描述的修改。
6.2.1. 重命名 JBoss EAP Jakarta EE 8 复制链接链接已复制到粘贴板!
JBoss EAP Jakarta EE 8 BOM 已重命名为 JBoss EAP EE,其 Maven Coordinates 已从 org.jboss.bom:jboss-eap-jakartaee8 改为 org.jboss.bom:jboss-eap-ee。Maven 项目中此 BOM 的使用(pom.xml)可通过以下依赖项管理导入来识别:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>jboss-eap-jakartaee8</artifactId>
<version>${version.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Maven 项目(pom.xml)应将新的 "JBoss EAP EE" BOM 导入到其依赖项管理中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>jboss-eap-ee</artifactId>
<version>${version.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
您必须更新 BOM 版本。有关查找最新版本的 JBoss EAP BOM 的说明,请参阅 兼容 JBoss EAP 组件版本。
6.2.2. 使用工具重命名 JBoss EAP Jakarta EE 8 复制链接链接已复制到粘贴板!
JBoss EAP Jakarta EE 8 With Tools BOM 已重命名为带有工具 的 JBoss EAP EE,其 Maven Coordinates 已从 org.jboss.bom:jboss-eap-jakartaee8-with-tools 改为 org.jboss.bom:jboss-eap-ee-with-tools。Maven 项目中此 BOM 的使用(pom.xml)可通过以下依赖项管理导入来识别:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>jboss-eap-jakartaee8-with-tools</artifactId>
<version>${version.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Maven 项目(pom.xml)必须将新的"JBoss EAP EE with Tools" BOM 导入到其依赖项管理中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>jboss-eap-ee-with-tools</artifactId>
<version>${version.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
您必须更新 BOM 版本。有关查找最新版本的 JBoss EAP BOM 的说明,请参阅 兼容 JBoss EAP 组件版本。
6.2.3. 删除 JBoss EAP Jakarta EE 8 API 复制链接链接已复制到粘贴板!
JBoss EAP Jakarta EE 8 API BOMs 已在 JBoss EAP 8.0 中删除了,必须改为使用新的 JBoss EAP EE BOM。Maven 项目中此 BOM 的使用(pom.xml)可通过以下依赖项管理导入来识别:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-jakartaee-8.0</artifactId>
<version>${version.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-jakartaee-web-8.0</artifactId>
<version>${version.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Maven 项目(pom.xml)必须将新的 JBoss EAP EE BOM 导入到其依赖项管理中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>jboss-eap-ee</artifactId>
<version>${version.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
您必须更新 BOM 版本。有关查找最新版本的 JBoss EAP BOM 的说明,请参阅 兼容 JBoss EAP 组件版本。
6.2.4. 移除 JBoss EAP Runtime BOM 复制链接链接已复制到粘贴板!
JBoss EAP Runtime BOM 不再随 JBoss EAP 8.0 发布,您必须使用新的 JBoss EAP EE BOM。Maven 项目中此 BOM 的使用(pom.xml)可通过以下依赖项管理导入来识别:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>eap-runtime-artifacts</artifactId>
<version>${version.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Maven 项目(pom.xml)必须将新的 JBoss EAP EE BOM 导入到其依赖项管理中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>jboss-eap-ee</artifactId>
<version>${version.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
您必须更新 BOM 版本。有关查找最新版本的 JBoss EAP BOM 的说明,请参阅 兼容 JBoss EAP 组件版本。
6.2.5. Jakarta EE 和 JBoss API Maven Coordinates 更改 复制链接链接已复制到粘贴板!
以下 Jakarta EE 和 JBoss API 工件(由 JBoss EAP BOM 提供)更改了 Maven Coordinate,或者被其他工件替代:
-
com.sun.activation:jakarta.activation -
org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec -
org.jboss.spec.javax.security.auth.message:jboss-jaspi-api_1.0_spec -
org.jboss.spec.javax.security.jacc:jboss-jacc-api_1.5_spec -
org.jboss.spec.javax.batch:jboss-batch-api_1.0_spec -
org.jboss.spec.javax.ejb:jboss-ejb-api_3.2_spec -
org.jboss.spec.javax.el:jboss-el-api_3.0_spec -
org.jboss.spec.javax.enterprise.concurrent:jboss-concurrency-api_1.0_spec -
org.jboss.spec.javax.faces:jboss-jsf-api_2.3_spec -
org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.2_spec -
org.jboss.spec.javax.jms:jboss-jms-api_2.0_spec -
com.sun.mail:jakarta.mail -
org.jboss.spec.javax.resource:jboss-connector-api_1.7_spec -
org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec -
org.jboss.spec.javax.servlet.jsp:jboss-jsp-api_2.3_spec -
org.apache.taglibs:taglibs-standard-spec -
org.jboss.spec.javax.transaction:jboss-transaction-api_1.3_spec -
org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec -
org.jboss.spec.javax.xml.ws:jboss-jaxws-api_2.3_spec -
javax.jws:jsr181-api -
org.jboss.spec.javax.websocket:jboss-websocket-api_1.1_spec -
org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec -
org.jboss.spec.javax.xml.soap:jboss-saaj-api_1.4_spec -
org.hibernate:hibernate-core -
org.hibernate:hibernate-jpamodelgen -
org.jboss.narayana.xts:jbossxts
如果工件被更改或替换,则 Maven Project (pom.xml)应更新依赖项的 Maven Coordinate,或删除依赖项(如果工件不再被支持)。
<dependencies>
<!-- replaces com.sun.activation:jakarta.activation -->
<dependency>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec -->
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.security.auth.message:jboss-jaspi-api_1.0_spec -->
<dependency>
<groupId>jakarta.authentication</groupId>
<artifactId>jakarta.authentication-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.security.jacc:jboss-jacc-api_1.5_spec -->
<dependency>
<groupId>jakarta.authorization</groupId>
<artifactId>jakarta.authorization-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.batch:jboss-batch-api_1.0_spec -->
<dependency>
<groupId>jakarta.batch</groupId>
<artifactId>jakarta.batch-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.ejb:jboss-ejb-api_3.2_spec -->
<dependency>
<groupId>jakarta.ejb</groupId>
<artifactId>jakarta.ejb-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.el:jboss-el-api_3.0_spec -->
<dependency>
<groupId>org.jboss.spec.jakarta.el</groupId>
<artifactId>jboss-el-api_5.0_spec</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.enterprise.concurrent:jboss-concurrency-api_1.0_spec -->
<dependency>
<groupId>jakarta.enterprise.concurrent</groupId>
<artifactId>jakarta.enterprise.concurrent-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.faces:jboss-jsf-api_2.3_spec -->
<dependency>
<groupId>jakarta.faces</groupId>
<artifactId>jakarta.faces-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.2_spec -->
<dependency>
<groupId>jakarta.interceptor</groupId>
<artifactId>jakarta.interceptor-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.jms:jboss-jms-api_2.0_spec -->
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
</dependency>
<!-- replaces com.sun.mail:jakarta.mail -->
<dependency>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.resource:jboss-connector-api_1.7_spec -->
<dependency>
<groupId>jakarta.resource</groupId>
<artifactId>jakarta.resource-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.servlet.jsp:jboss-jsp-api_2.3_spec -->
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
</dependency>
<!-- replaces org.apache.taglibs:taglibs-standard-spec -->
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.transaction:jboss-transaction-api_1.3_spec -->
<dependency>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec -->
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.xml.ws:jboss-jaxws-api_2.3_spec and javax.jws:jsr181-api -->
<dependency>
<groupId>org.jboss.spec.jakarta.xml.ws</groupId>
<artifactId>jboss-jakarta-xml-ws-api_4.0_spec</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.websocket:jboss-websocket-api_1.1_spec -->
<dependency>
<groupId>jakarta.websocket</groupId>
<artifactId>jakarta.websocket-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec -->
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
</dependency>
<!-- replaces org.jboss.spec.javax.xml.soap:jboss-saaj-api_1.4_spec -->
<dependency>
<groupId>org.jboss.spec.jakarta.xml.soap</groupId>
<artifactId>jboss-saaj-api_3.0_spec</artifactId>
</dependency>
<!-- replaces org.hibernate:hibernate-core -->
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<!-- replaces org.hibernate:hibernate-jpamodelgen -->
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
</dependency>
<!-- replaces org.jboss.narayana.xts:jbossxts -->
<dependency>
<groupId>org.jboss.narayana.xts</groupId>
<artifactId>jbossxts-jakarta</artifactId>
<classifier>api</classifier>
</dependency>
</dependencies>
6.2.6. 删除 JBoss EJB 客户端传统 BOM 复制链接链接已复制到粘贴板!
使用 Maven groupId:artifactId 协调 org.jboss.eap:wildfly-ejb-client-legacy-bom 的 JBoss EJB Client Legacy BOM 不再随 JBoss EAP 提供。
您可以将这个 BOM 识别为依赖项管理导入,或作为 Maven 项目 pom.xml 配置文件中的依赖项引用,如下例所示:
- 依赖项管理导入示例
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>wildfly-ejb-client-legacy-bom</artifactId>
<version>${version.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 依赖项引用示例
<dependencies>
...
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>wildfly-ejb-client-legacy-bom</artifactId>
<version>${version.bom}</version>
<type>pom</type>
</dependency>
...
</dependencies>
您必须更新 BOM 版本。有关查找最新版本的 JBoss EAP BOM 的说明,请参阅 兼容 JBoss EAP 组件版本。
独立客户端 Java 应用程序可以继续使用已删除 BOM 的同一版本,如 7.4.0.GA,以用于 JBoss EAP 8。但是,建议替换 EJB 客户端 Legacy API。有关配置 EJB 客户端的详情,请参考 在 EAP 7.1+ / 8.0+ 中如何配置 EJB 客户端。有关在 JBoss EAP 7.4 中弃用 EJB 客户端旧 API 的详情,请参考 Red Hat JBoss Enterprise Application Platform (EAP) 7 中的已弃用。
JBoss EAP 7.4 客户端和 JBoss EAP 8.x 服务器遵循不同的产品生命周期。如需更多信息,请参阅 JBoss EAP 的产品生命周期。