Hibernate 如果父pom具有JavaEEBOM依赖关系,那么是否应该在子pom中明确提及所有依赖关系?
在我们的项目中,REST层、EJB层和域(实体)层有单独的模块 以下是对REST层的依赖:Hibernate 如果父pom具有JavaEEBOM依赖关系,那么是否应该在子pom中明确提及所有依赖关系?,hibernate,maven,jakarta-ee,jboss,resteasy,Hibernate,Maven,Jakarta Ee,Jboss,Resteasy,在我们的项目中,REST层、EJB层和域(实体)层有单独的模块 以下是对REST层的依赖: <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jettison-provider</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
</dependency>
<!-- Resteasy Server Cache -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-cache-core</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
</dependency>
Q2:为什么在我们的pom.xml中显式声明这些内容?hibernate上的一个依赖项不应该为其他依赖项提供默认值吗
Q3以下是一种有效的重构方法(使用Jboss bom)?在父pom.xml中有一个依赖项,每个模块只从父模块继承。通过这种方式,子pom.xml变得简单和简短。这有什么坏处?我将获得我在上面的每个REST和域层中明确提供的所有依赖项
<dependency>
<groupId>org.jboss.bom.eap</groupId>
<artifactId>jboss-javaee-6.0-with-resteasy</artifactId>
<version>${jboss.bom.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
org.jboss.bom.eap
jboss-javaee-6.0-with-resteasy
${jboss.bom.version}
聚甲醛
进口
我认为这将为您提供所需的一切:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>jboss-javaee-6.0-with-all</artifactId>
<version>1.0.7.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-all-6.0</artifactId>
<version>3.0.3.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>2.7.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
org.jboss.bom
邮局
对于WildFly 8.2上的Java EE 7,请使用以下依赖项:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>jboss-javaee-7.0-with-all</artifactId>
<version>8.2.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-all-7.0</artifactId>
<version>1.0.2.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
org.wildfly.bom
jboss-javaee-7.0-with-all
8.2.0.1最终版本
聚甲醛
进口
org.jboss.spec
jboss-javaee-all-7.0
1.0.2.1最终版本
假如
朱尼特
朱尼特
测试
为什么同时需要org.jboss.spec和org.jboss.bom?这两个都不够吗?BOM只是一份材料清单。当您添加Jboss特定的依赖项时,它非常有用。您不需要找出Jboss服务器上运行的依赖项的确切版本。版本从BOM表中填充。因此,省略版本标记。对于这个特定的例子,BOM是不需要的,但我认为无论如何添加它都是一个好的做法。仅仅BOM是不够的,你绝对需要规范。这包括RestEasy、Hibernate、RestEasy等吗?我如何知道它提供的默认值是什么。谢谢不。这包括所有。您在JSR中得到了什么,您没有得到的特定于RestEasy或Hibernate实现的内容。所以,如果你想成为平台不可知论者,这就是你应该使用的全部。JSR的其他实现(即MoXy、Eclipselink)也应该可以工作。当您使用特定于实现的功能时,需要将特定实现添加为依赖项。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>jboss-javaee-7.0-with-all</artifactId>
<version>8.2.0.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-all-7.0</artifactId>
<version>1.0.2.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>