【发布时间】:2012-09-06 10:08:49
【问题描述】:
这应该很简单,但无法弄清楚。我有一个使用 Maven 构建的 Web 项目,将部署在 JBOSS-EAP 5.1 服务器上。我应该在我的 pom.xml 中添加什么,以便 Maven 在构建时可以访问 JBOSS EAP 库?
我可以使用特定的依赖项或插件吗?
【问题讨论】:
标签: jakarta-ee maven jboss jboss5.x
这应该很简单,但无法弄清楚。我有一个使用 Maven 构建的 Web 项目,将部署在 JBOSS-EAP 5.1 服务器上。我应该在我的 pom.xml 中添加什么,以便 Maven 在构建时可以访问 JBOSS EAP 库?
我可以使用特定的依赖项或插件吗?
【问题讨论】:
标签: jakarta-ee maven jboss jboss5.x
Jboss 软件包现在(并且已经有好几年了)在
<repository>
<id>jboss-repository</id>
<name>JBoss Repository</name>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
</repository>
【讨论】:
(以下是 OP erroneously included in the question)
我最后所做的是将以下依赖项添加到我的 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)提供的。
【讨论】:
考虑到JBoss是一个EE容器,添加JavaEE依赖就足够了。
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
提供的范围可确保在将应用程序部署到服务器后使用 JBoss 自己的库。
【讨论】:
AFAIK 这是 EAP 6 的一项功能,即使在那时也是实验性的。查看来自here 和here 的更多信息:
对之前版本的一个重大改进是,EAP 6 附带一个 Maven 存储库,其中包括所有与 EAP 相关的 Maven 文物。缺少的 Maven 存储库是一个很大的缺点 以前的 EAP 版本。所需的 Maven 工件必须手动进行 从 EAP 发行版部署到您自己的本地 Maven 存储库或进入您的企业 Maven 存储库,如 Nexus 或 神器。
所以不,我认为 Jboss EAP 5.X 不存在这样的存储库。
这意味着实际上您有以下选择,从最推荐到最不推荐:
将库存储在您的 Intranet 存储库中并使用它应该不会太难。为开发人员提供 Intranet 存储库是您无论如何都应该使用的最佳实践。
【讨论】:
您必须首先确定您的项目依赖项到底是什么,并将它们作为依赖项添加到您的pom.xml 中。现在确定 jboss 可用的所有内容,并将这些依赖项的范围设为<scope>provided</scope>,这样它就不会与war 捆绑在一起。在构建期间,maven 必须从 maven 存储库中获取 jar。
【讨论】: