【问题标题】:How to use jars from Wildfly correctly in Maven?如何在 Maven 中正确使用 Wildfly 的 jar?
【发布时间】:2023-03-17 21:45:01
【问题描述】:

我正在开发一个要部署到 Wildfly 的项目,我正在使用 Maven 来构建它。这是一个包含多个 war/jar/ear 文件的复杂项目,因此有一个父 pom.xml,其中包含以下内容:

...
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.wildfly.bom</groupId>
      <artifactId>jboss-javaee-7.0-with-all</artifactId>
      <version>8.1.0.Final</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
...
  </dependencies>
</dependencyManagement>
...

不幸的是,上面的 BOM 不包括我知道默认 Wildfly 8.1.0.Final 发行版中的各种 jar 文件。特别是这个问题的原因是cxf-api jar文件。我知道它位于 Wildfly 的这个位置:

wildfly-8.1.0.Final/modules/system/layers/base/org/apache/cxf/main/cxf-api-2.7.11.jar

但它不受为 Wildfly 推荐的 BOM 管理。

我如何正确将 cxf-api 和类似的 jar 文件添加到项目的 pom.xml 中,最好不必单独指定每个文件?当然,我可以这样做:

<dependency>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-api</artifactId>
  <version>2.7.11</version>
  <scope>provided</scope>
</dependency>

但我真的不想对已经是 Wildfly 一部分的每个 jar 文件都执行此操作。

没有可以导入的 BOM 吗?

【问题讨论】:

  • cxf-core(在 cxf 版本 3 中替换 cxf-api)现在在 WildFly boms 10.1.0.CR1 和更新版本中进行管理。

标签: maven wildfly-8


【解决方案1】:

WildFly BOMs(在其原始版本中也称为 JBoss 物料清单)是一组依赖项,用于增强相关项目的部署并以某种方式自动化测试。不幸的是,它不包括 WildFly 核心(即应用程序服务器)中使用的依赖项。

pom.xml(项目描述符)是WildFly parent pom。因此,只需将其导入到您自己的项目 pom 中,您的依赖就会被彻底解决:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.wildfly</groupId>
      <artifactId>wildfly-parent</artifactId>
      <version>8.1.0.Final</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

检查目标WildFly 版本中使用的Apache CXF version,然后选择符合您需要的稳定标签。

【讨论】:

  • 谢谢!我是使用它来代替原始 BOM,还是在原始 BOM 之外使用它?
  • 两者兼得,绝对没有缺点。如果您对此感到满意,请不要忘记接受答案;)
  • 这听起来像是解决我当前问题的完美解决方案......但它似乎不起作用。我已将完全相同的 XML 添加到我的父 pom.xml... 并将以下内容添加到我的项目模块 pom.xml:&lt;dependency&gt;&lt;groupId&gt;org.wildfly&lt;/groupId&gt;&lt;artifactId&gt;wildfly-server&lt;/artifactId&gt;&lt;/dependency&gt; - 但它不会编译。
  • 这样跟踪问题会很困难。您能否解决一个新线程并给出一个标志;)
  • @DanielBleisteiner 如果您实际上将“wildfly-server”放入您的 XML,那就是问题所在。它需要是'wildfly-parent'。另外,那只建立依赖管理。您仍然需要在任何子 pom.xml 文件中指定必要的依赖项。
猜你喜欢
  • 1970-01-01
  • 2018-03-22
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多