这应该很简单,但无法弄清楚。我有一个使用 Maven 构建的 Web 项目,将部署在 JBOSS-EAP 5.1 服务器上。我应该在我的 pom.xml 中添加什么,以便 Maven 在构建时可以访问 JBOSS EAP 库?
我可以使用特定的依赖项或插件吗?
这应该很简单,但无法弄清楚。我有一个使用 Maven 构建的 Web 项目,将部署在 JBOSS-EAP 5.1 服务器上。我应该在我的 pom.xml 中添加什么,以便 Maven 在构建时可以访问 JBOSS EAP 库?
我可以使用特定的依赖项或插件吗?
考虑到 JBoss 是一个 EE 容器,添加 JavaEE 依赖就足够了。
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
提供的范围确保应用程序部署到服务器后使用 JBoss 自己的库。
您必须首先确定您的项目依赖项到底是什么,并将它们作为依赖项添加到您的pom.xml
. 现在确定 jboss 可用的所有内容,并确定这些依赖项的范围<scope>provided</scope>
,使其不与war
. 在构建期间,maven 必须从 maven 存储库中获取 jars。
AFAIK 这是 EAP 6 的一项功能,即使在那时也是实验性的。从这里和这里查看更多信息:
对先前版本的一个重大改进是,EAP 6 附带了一个 Maven 存储库,其中包括所有与 EAP 相关的 Maven 工件。缺少 maven 存储库是以前 EAP 版本的一大缺点。必须将所需的 Maven 工件从 EAP 分发版手动部署到您自己的本地 Maven 存储库或您的企业 Maven 存储库(如 Nexus 或 Artifactory)中。
所以不,我认为 Jboss EAP 5.X 不存在这样的存储库。
这意味着在实践中,您有以下选择,从最推荐到最不推荐:
将库存储在 Intranet 存储库中并使用它应该不会太难。为开发人员提供 Intranet 存储库是您无论如何都应该使用的最佳实践。
Jboss 软件包现在(并且已经有好几年了)在
<repository>
<id>jboss-repository</id>
<name>JBoss Repository</name>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
</repository>
(以下是问题中错误包含OP的答案)
我最终所做的是将以下依赖项添加到我的 pom 中:
<dependency>
<groupId>javax.j2ee</groupId>
<artifactId>j2ee</artifactId>
<version>1.5</version>
<scope>provided</scope>
</dependency>
不是我所问问题的直接答案(我专门询问了 JBOSS),但它为我提供了我需要编译的所有 Java EE API。我无法使用它运行任何东西,因为它没有实现任何 API - 这是由我的 Java EE 应用程序服务器(在本例中为 JBOSS)提供的。