4

这应该很简单,但无法弄清楚。我有一个使用 Maven 构建的 Web 项目,将部署在 JBOSS-EAP 5.1 服务器上。我应该在我的 pom.xml 中添加什么,以便 Maven 在构建时可以访问 JBOSS EAP 库?

我可以使用特定的依赖项或插件吗?

4

5 回答 5

3

考虑到 JBoss 是一个 EE 容器,添加 JavaEE 依赖就足够了。

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

提供的范围确保应用程序部署到服务器后使用 JBoss 自己的库。

于 2013-03-01T16:10:07.093 回答
1

您必须首先确定您的项目依赖项到底是什么,并将它们作为依赖项添加到您的pom.xml. 现在确定 jboss 可用的所有内容,并确定这些依赖项的范围<scope>provided</scope>,使其不与war. 在构建期间,maven 必须从 maven 存储库中获取 jars。

于 2012-09-13T11:08:28.963 回答
1

AFAIK 这是 EAP 6 的一项功能,即使在那时也是实验性的。从这里这里查看更多信息:

对先前版本的一个重大改进是,EAP 6 附带了一个 Maven 存储库,其中包括所有与 EAP 相关的 Maven 工件。缺少 maven 存储库是以前 EAP 版本的一大缺点。必须将所需的 Maven 工件从 EAP 分发版手动部署到您自己的本地 Maven 存储库或您的企业 Maven 存储库(如 Nexus 或 Artifactory)中。

所以不,我认为 Jboss EAP 5.X 不存在这样的存储库。

这意味着在实践中,您有以下选择,从最推荐到最不推荐:

  • 拥有一个 Intranet 存储库,例如 Nexus 或 Artifactory,并在那里安装这些项目。然后,您可以将它们称为 pom.xml 中的依赖项。推荐使用此选项。
  • 仅将它们本地安装到每个开发人员本地 maven 存储库中。您将为此使用 mvn install-file,每个开发人员都需要自己执行此操作。之后,每个依赖项都可以像其他依赖项一样从 pom 中引用。
  • 在 pom 上使用系统范围,直接指向存储在硬盘驱动器上某处的库。这将是一个脆弱的设置,很容易破坏。

将库存储在 Intranet 存储库中并使用它应该不会太难。为开发人员提供 Intranet 存储库是您无论如何都应该使用的最佳实践。

于 2012-09-13T11:32:24.320 回答
1

Jboss 软件包现在(并且已经有好几年了)在

        <repository>
            <id>jboss-repository</id>
            <name>JBoss Repository</name>
            <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
        </repository>
于 2021-04-04T18:11:02.957 回答
0

以下是问题中错误包含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)提供的。

于 2013-12-04T15:50:13.167 回答