java - IBM Websphere 包的 Maven 依赖项

标签 java maven websphere-8

我正在尝试将使用 IBM websphere 8.0.0.5 的“经典”JAVA EE 项目转换为 Maven 多模块项目并面临 IBM 依赖项的问题。

我们使用来自以下包的 IBM 类:

  • com.ibm.websphere.asynchbeans
  • com.ibm.websphere.scheduler
  • com.ibm.websphere.ce.cm
  • com.ibm.ws.asynchbeans
  • com.ibm.ws.util.ThreadPool

为了编译我的本地项目,我从 IBM 下载了 was.installer-8.0.0.pm。并使用

将它安装到我的maven
mvn install -f "was.installer-8.0.0.pom" -D serverInstallationFolder="C:\Program Files (x86)\IBM\WebSphere\AppServer"

根据命令行输出,此步骤成功。

然后我按照 IBM 的描述将以下依赖项添加到我的项目中:

在 parent 中:

<dependency>
 <groupId>com.ibm.tools.target</groupId>
 <artifactId>was</artifactId>
 <version>8.0.0</version>
 <type>pom</type>
 <scope>provided</scope>
</dependency>

在模块中:

 <dependency>
   <groupId>com.ibm.tools.target</groupId>
   <artifactId>was</artifactId>
 </dependency>      

但是我仍然无法编译我的项目,因为找不到 IBM 包。

谁能帮我找出并改正我犯的错误?

编辑

在遵循评论中的 BevynQ 提示后,我将“was_public.jar”复制到“was_public-8.0.0.jar”(在 IBM here 中描述)并将其添加到我的存储库中:

mvn install:install-file -Dfile="C:\Program Files (x86)\IBM\WebSphere\AppServer\dev\was_public-8.0.0.jar" -DpomFile="C:\Program Files (x86)\IBM\WebSphere\AppServer\dev\was_public-8.0.0.pom"

然后我将依赖项更改为:

<dependency>
 <groupId>com.ibm.websphere.appserver</groupId>
 <artifactId>was_public</artifactId>
 <version>8.0.0</version>
 <scope>provided</scope>
</dependency>

 <dependency>
   <groupId>com.ibm.websphere.appserver</groupId>
   <artifactId>was</artifactId>
 </dependency>    

这有助于解决导入到 com.ibm.websphere 的编译错误。

我现在仍然打开的是 packages com.ibm.ws.* 包。有人有想法吗?

编辑 2 我添加了以下依赖项,然后摆脱了 com.ibm.ws.* 导入错误。

<dependency>
  <groupId>com.ibm.websphere.ws</groupId>
  <artifactId>com.ibm.ws.runtime</artifactId>
  <version>1.0.0</version>
</dependency> 

但它仍然无法编译,因为现在无法找到间接引用(在我的例子中是 commonj.work.WorkManager)。看来我需要为每一件事添加更多的 .jars。难道没有更简单的方法来一次提供所有 websphere jar,如上面链接的教程中所述,使用 com.ibm.tools 依赖项(不起作用)?

最佳答案

一般来说,com.ibm.websphere 是供应用程序使用的公共(public) API(这适用于您上面列出的包),这与 was_public.jar

但是,com.ibm.ws 包一般是产品内部构件。请问您使用的是 com.ibm.ws.asynchbeans 包中的哪些接口(interface)方法?也许有一个公共(public) API 替代方案。

关于 commonj.work,我在 WebSphere Application Server 产品图像中唯一能找到它的地方是 WAS/plugins/com.ibm.ws.prereq.commonj-twm.jar 所以看起来您需要使用它来编译。

关于java - IBM Websphere 包的 Maven 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36564098/

相关文章:

linux - 启动/停止 Websphere Application Server (WAS) 配置文件 - Unix/Linux

java - Java中LocalDate属性的编译问题?

Maven JaCoCo 仅适用于站点阶段

java - 使用 war 时组到 IBM Liberty (WLP) 中的角色映射

java - 如何为 Websphere 配置文件启用 JDK 7

java - JMH 不在 Java 模块内运行(无法找到资源 :/META-INF/BenchmarkList)

java - 缺少 JFrame?还是只是全屏?

java - JDK 版本之间的时间差异

java - 如何通过 Java 的 Runtime api 获取我的 Java 程序使用的内存?

maven - 如何在 Artifactory 中映射最大的文件\文件夹