Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee 使用maven的项目的JBOSS依赖项_Jakarta Ee_Maven_Jboss_Jboss5.x - Fatal编程技术网

Jakarta ee 使用maven的项目的JBOSS依赖项

Jakarta ee 使用maven的项目的JBOSS依赖项,jakarta-ee,maven,jboss,jboss5.x,Jakarta Ee,Maven,Jboss,Jboss5.x,这应该很简单,但无法理解。我有一个使用Maven构建的web项目,它将部署在JBOSS-EAP5.1服务器上。我应该向pom.xml添加什么,以便Maven在构建时能够访问JBOSS EAP库 是否有我可以使用的特定依赖项或插件?您必须首先确定项目依赖项的确切内容,并将它们作为依赖项添加到pom.xml中。现在确定jboss提供的所有功能,并将这些依赖项的范围设置为提供的,这样它就不会与war捆绑在一起。在构建期间,maven将不得不从maven存储库中获取JAR。AFAIK这是EAP6的一个特

这应该很简单,但无法理解。我有一个使用Maven构建的web项目,它将部署在JBOSS-EAP5.1服务器上。我应该向pom.xml添加什么,以便Maven在构建时能够访问JBOSS EAP库


是否有我可以使用的特定依赖项或插件?

您必须首先确定项目依赖项的确切内容,并将它们作为依赖项添加到
pom.xml
中。现在确定jboss提供的所有功能,并将这些依赖项的范围设置为提供的
,这样它就不会与
war
捆绑在一起。在构建期间,maven将不得不从maven存储库中获取JAR。

AFAIK这是EAP6的一个特性,即使在这一点上也是实验性的。请参阅和的更多信息:

与前一版本相比,一个显著的增强是EAP6 随附Maven存储库,其中包括所有与EAP相关的Maven 人工制品缺少maven存储库是我们的一大缺点 以前的EAP版本。所需的Maven工件必须手动创建 从EAP发行版部署到您自己的本地Maven中 存储库或企业Maven存储库,如Nexus或 人工制品

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

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

  • 拥有一个内部网repo,比如Nexus或Artifactory,并在那里安装项目。然后,您可以将它们称为pom中的依赖项。建议使用此选项
  • 仅在本地将它们安装到每个开发人员本地maven repo中。为此,您将使用mvn安装文件,每个开发人员都需要自己完成这项工作。之后,每个依赖项都可以像其他依赖项一样从pom引用
  • 在pom上使用系统范围,直接指向硬盘上存储的库。这将是一个脆弱的设置,很容易打破

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

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

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

爪哇
JavaEEAPI
6
假如
提供的作用域确保一旦应用程序部署到服务器上,就可以使用JBoss自己的库

最后,我在pom中添加了以下依赖项:

    <dependency>
        <groupId>javax.j2ee</groupId>
        <artifactId>j2ee</artifactId>
        <version>1.5</version>
        <scope>provided</scope>
    </dependency>

javax.j2ee
j2ee
1.5
假如

这不是对我所问问题的直接回答(我特别问了JBOSS),但它提供了我需要编译的所有JavaEEAPI。我无法使用它运行任何东西,因为它没有实现任何API—这是由我的Java EE应用程序服务器(本例中为JBOSS)提供的。

JBOSS软件包现在(以及未来几年)在


jboss存储库
JBoss存储库
https://repository.jboss.org/nexus/content/groups/public-jboss/

看看我在上面做了什么。只是使用了一个通用的JavaEE依赖项,而不是一个特定的JBOSS依赖项。您的答案与我的问题最接近,因此我们将其标记为接受答案。是的,建议只使用通用JEE依赖项,并且仅在绝对必要时使用JBoss规范。我在回答中也有同样的建议,但由于不太适合所问的问题,我改变了建议。很高兴它是这样工作的:)这是一种很好的(手动)方式,但是在一个提供的范围内用一个像org.JBoss.as:JBoss-eap:5.1.0.GA:pom(及其相关依赖项)这样的依赖项来定义所有JBoss依赖项作为提供的范围可能会更容易:所以没有人做过这项工作?