【问题标题】:POM files for Websphere specific jarsWebsphere 特定 jar 的 POM 文件
【发布时间】:2016-10-11 09:26:09
【问题描述】:

Websphere 提供了一组提供的jar,包括com.ibm.ws.ejb.thinclient_8.5.0.jarcom.ibm.ws.batch.runtime.jarcom.ibm.ws.orb_8.5.0.jar等。

在 ANT 构建过程中,有些人在类路径中有这些文件。现在我们正在迁移到 Maven,我不确定应该如何处理这些文件:

  • 如果它们应该成为构建过程的一部分,我需要将它们放入存储库中。但是我应该如何为他们获取或生成正确的 POM?

  • 如果它们不应该成为构建过程的一部分,什么是合适的替代品?

【问题讨论】:

标签: java maven websphere


【解决方案1】:

如果您使用公司的 maven 存储库作为 maven Central 的代理,最好的办法是让这些 jar 文件在那里可用:

mvn install:install-file -Dfile=<path to the jarfile> -DgeneratePom=true -Dpackaging=jar -Dversion=<version> -DgroupId=<groupId> -DartifactId=<artifactId>

在这种情况下,groupId 通常由您的公司前缀和工件的基本包组成。 artefactId 将是没有版本的最后一部分。例如对于com.ibm.ws.ejb.thinclient_8.5.0.jar,版本是8.5.0,artifactId thinclient 和groupId 类似于com.example.thirdparty.com.ibm.ws.ejb。 如果您是唯一的开发人员并将这些工件安装在本地存储库中,则同样的方法也适用。

另见official documentation

另一种方法是将这些文件作为项目的一部分,并通过本地路径引用它们,然后使用maven-install-plugin 或通过将第一种方法中的步骤作为构建过程的一部分从那里安装。请参阅Maven and adding JARs to system scopeMaven: add a dependency to a jar by relative path

免责声明:我一直使用第一个选项,因为这似乎是正确的方法。

【讨论】:

  • 谢谢。实际上,我一直在寻找更特定于 Websphere 的答案,因为您的方法只是为每个罐子创建了空的 pom。我希望在 Web 或 IBM 的某个地方有预定义的 pom。
  • @JFMeier 没有用于 WebSphere 瘦客户端 jar 的公开可用的 maven 工件。您最好的选择 IMO 是按照 hotzst 的建议从本地安装创建本地 maven 工件
【解决方案2】:

从版本 8 开始,尝试随 WebSphere Application Server 传统版一起提供的“was_public”JAR 和 POM。

here

【讨论】:

  • was_public.jar 与问题中提到的所有其他 Websphere jar 有什么关系?
  • 目的是提供公开记录的 API,而不是各种客户端运行时。例如。它有批处理 API,但没有 ORB 运行时类。因此,您可能仍然需要将 JAR 带入您的本地存储库,就像提到的另一个答案一样,但这至少回答了“我在哪里可以找到一些 IBM 定义的 WebSphere API 的 POM”的问题。
  • 其实was_public的pom并没有定义任何依赖。不过谢谢你的提示。
猜你喜欢
  • 2020-06-06
  • 1970-01-01
  • 2019-01-13
  • 2011-12-06
  • 1970-01-01
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多