IBM Websphere包的Maven依赖项

bis*_*ish 7 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"
Run Code Online (Sandbox Code Playgroud)

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

然后,我将以下依赖项添加到我的项目中,如IBM所述:

在父母:

<dependency>
 <groupId>com.ibm.tools.target</groupId>
 <artifactId>was</artifactId>
 <version>8.0.0</version>
 <type>pom</type>
 <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

在模块中:

 <dependency>
   <groupId>com.ibm.tools.target</groupId>
   <artifactId>was</artifactId>
 </dependency>      
Run Code Online (Sandbox Code Playgroud)

但由于找不到IBM软件包,我仍然无法编译我的项目.

任何人都可以帮我找到并纠正我犯的错误吗?

编辑

在从评论中关注BevynQ提示之后,我将"was_public.jar"复制到"was_public-8.0.0.jar"(在IBM这里描述)并将其添加到我的存储库中:

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"
Run Code Online (Sandbox Code Playgroud)

然后我将依赖项更改为:

<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>    
Run Code Online (Sandbox Code Playgroud)

这有助于com.ibm.websphere完成导入的编译错误.

我现在还打开的是包裹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> 
Run Code Online (Sandbox Code Playgroud)

但它仍然没有编译,因为现在无法找到间接引用(在我的情况下commonj.work.WorkManager).似乎我需要为每一件事添加更多.jars.是否有一种更简单的方法可以一次性提供所有的websphere jar作为上述链接教程中的com.ibm.tools依赖(不起作用)?

bis*_*ish 1

这是解决方案,所以我解决了我的依赖问题:

  1. 我将公司存储库管理器(nexus)配置为镜像。在这个关系中,所有 ibm 软件包都存在。正如您所认为的,这解决了主要问题。
  2. 然后我根据常见的maven风格添加了以下依赖项:

pom.xml(提取到属性的版本号)中的依赖项:

<dependency>
  <groupId>com.ibm.websphere.ws</groupId>
  <artifactId>com.ibm.ws.runtime</artifactId>
  <version>${ibm.ws.runtime.version}</version>
</dependency>


<dependency>
  <groupId>com.ibm.ws.prereq</groupId>
  <artifactId>commonj-twm</artifactId>
  <version>${ibm.ws.prereq.commonj-twm.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

抱歉,我无法提供一个可供所有人使用的“好”解决方案,但njr的答案和BevynQ的评论在很大程度上帮助我们更清楚地解决问题,并通过复制以“更手动”的方式帮助解决问题手工所需的罐子。