2012-09-13 294 views
3

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

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

回答

1

AFAIK这是EAP 6的一项功能,甚至在这方面也是实验性的。从herehere查看更多信息:

一个宏伟提高到以前的版本,即EAP 6个 附带一个Maven仓库,其中包括所有的EAP相关的Maven 文物。缺少的maven仓库是 以前的EAP版本的一大缺点。所需的Maven工件必须手动从EAP分发部署到您自己的本地Maven 存储库或您的企业Maven存储库,如Nexus或 Artifactory。

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

这意味着,在实践中,你有以下选择,从最值得推荐到最低:

  • 有一个内联网回购,如Nexus设备或Artifactory的,并安装有项目。然后你可以将它们称为你的pom的依赖。建议使用此选项。
  • 只在本地安装到每个开发者本地maven回购。你可以使用mvn install-file,每个开发者都需要自己完成。之后,每个依赖可以从其他依赖关系的方式从pom引用。
  • 在您的pom上使用系统作用域,直接指向存储在硬盘驱动器某处的库。这将是一个脆弱的设置,容易打破。

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

+0

看看我上面做了什么。刚刚使用了一个通用的Java EE依赖项,而不是特定的JBOSS项。您的回答最接近回答我所问的问题,因此将其标记为已接受的答案。 – CodeClimber

+0

是的,只使用通用的JEE依赖是推荐的方法,只有在绝对必要时才使用JBoss特定的方法。在我的回答中,我有同样的建议,但由于没有真正符合要求而改变了它。很高兴它的工作方式:) – eis

1

您必须首先确定您的项目依赖项到底是什么,并将它们作为依赖关系添加到您的pom.xml中。现在确定jboss提供的所有东西,并将这些依赖的范围设为<scope>provided</scope>,以便它不与war捆绑在一起。在构建时,maven将不得不从maven仓库中取出瓶子。

+0

这是很好的(手动)方式,但是可以更容易地将所有JBoss依赖性定义为只提供一个依赖项,如org.jboss.as:jboss-eap:5.1.0.GA:pom(和它的在所提供的范围内:所以没有人做过这样的工作? – Donatello

2

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

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

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

0

下面就是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)提供的。