我试图改变经典"使用IBM websphere 8.0.0.5的JAVA EE项目进入maven多模块项目并面临IBM家属的问题。
我们使用以下包中的IBM类:</ p>
为了让我的本地项目得到编译,我从IBM下载了was.installer-8.0.0.pm并使用
将其安装到我的mavenmvn install -f "was.installer-8.0.0.pom" -D serverInstallationFolder="C:\Program Files (x86)\IBM\WebSphere\AppServer"
根据命令行输出,此步骤成功。
然后我在IBM的描述中将以下依赖项添加到我的项目中:
在父母:
<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提示后,我复制了&#34; was_public.jar&#34; to&#34; was_public-8.0.0.jar&#34; (在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
。
我现在还打开的是包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。在上面链接的教程中,com.ibm.tools
依赖(不起作用)是不是有更简单的方法可以一次性提供所有的websphere jar?
答案 0 :(得分:3)
通常,com.ibm.websphere
是供应用程序使用的公共API(对于上面列出的软件包也是如此),这与was_public.jar
但是,com.ibm.ws
包通常是产品内部。请问com.ibm.ws.asynchbeans
包中使用的接口方法是什么?也许有一个公共API替代方案。
关于commonj.work
,我在WebSphere Application Server产品映像中唯一可以找到它的地方是WAS/plugins/com.ibm.ws.prereq.commonj-twm.jar
所以看起来你需要使用它来编译。
答案 1 :(得分:1)
这是解决方案所以我解决了我的依赖问题:
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>
对不起,我无法提供一个很好的&#34;所有人都可以使用的解决方案,但来自 njr 的答案以及来自 BevynQ 的评论有助于更清楚地解决问题并帮助解决问题a&#34;更多手册&#34;通过手工复制所需的罐子。
答案 2 :(得分:0)
当我尝试使用Maven版本3.3.9构建项目时,我遇到了这个问题,在Java版本1.8.0_101上运行,如屏幕截图所示:
我就是这样解决的:第1步。从here下载commonj.jar。
第2步。在命令提示符下键入mvn -version
,确定Maven正在使用的JDK。
第3步。转到该目录并将commonj.jar
文件放在jre/lib/ext
目录中,如下所示。现在你的项目应该在maven中构建,没有任何问题。