首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven管理的Java EE应用程序中JBoss提供的库

Maven管理的Java EE应用程序中JBoss提供的库
EN

Stack Overflow用户
提问于 2012-03-23 21:03:05
回答 2查看 4.2K关注 0票数 3

对我来说,这实际上是不太可能的,但是在网上似乎没有关于将JBoss提供的依赖项导入到Maven管理的Java EE应用程序中进行部署的直接答案。

AFAIK有两件事与这个问题有关,那就是外部(从JVM的意义上) JBoss客户端的jboss-as-client工件和带有巨大的<dependencyManagement>块的jboss-as-component-matrix工件,它定义了JBoss使用的库的版本。后一个工件非常有用,因为我可以使用Maven的导入范围来正确设置所有版本。缺少的(AFAIK)类似于jboss-as-client,但用于已部署的Java应用程序。一些东西,我可以依赖于provided作用域,并将所有东西放在类路径中,包括与平台相关的API(如EJB或JMS)和特定于AS的东西(如EJB-ext或jboss-messaging),以及可能来自liblib/endorsed和(主要) common/lib目录的一些其他东西。我知道更好的做法(与宗教兼容)可能是明确地说明模块中使用的依赖项,但我询问的方式对我来说更实用(对不起),至少对于真正使用许多标准API的Java EE应用程序是这样。

我真的很好奇你处理这种挑战的方式。我使用的是AS的5.1.0.GA版本。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-13 19:04:24

您必须提供您自己的(基础架构) maven项目,它只是打包了所有提到的依赖项,并且您的所有JBoss项目都依赖于这个具有provided作用域的基础架构项目。

但是,您不应该只针对规范jars而不是具体的实现进行编译吗?

喜欢

代码语言:javascript
复制
<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <version>1.0.0.Final</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

跳到在http://arquillian.org/guides/getting_started/上第一次出现“JavaEE6API”。

票数 4
EN

Stack Overflow用户

发布于 2012-04-15 21:56:33

您不会喜欢这个答案,但是除了使用provided作用域之外,由于这些库都是由JBoss在运行时提供的,所以这并不是您的事。任何未声明的传递依赖的类将由不同的类加载器加载(假设),并与应用程序类很好地共存。

对于不太好的耦合类,@MichalKalinowski说的是真的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9839689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档