6

我正在使用JBoss EAP 6.0.1(不是 JBoss AS 7.1.1 或 7.1.3!)而且我刚刚开始使用 Maven 项目。

在普通的 Eclipse 项目中,我将项目的目标运行时设置为 JBoss EAP 服务器运行时,然后它的所有库都可用于我的项目。此处可用意味着我可以使用例如 ctrl-t 在任何这些库中查找类,并且当我附加源代码时,我可以在调试时进入它们。

我将如何使用 Maven (m2e) 做到这一点?

我在http://maven.repository.redhat.com/techpreview/eap6/6.0.1/找到了 JBoss EAP 6.0.1 的 Maven 存储库

我是否需要在我的项目中添加一些根依赖项(代表 JBoss EAP 本身),如果需要,这个依赖项是什么?

我在这里发现了一个非常相似的问题:Adding JBoss AS 7 modules on Eclipse using Maven or JBoss Tools

但接受的答案只说:“看看这些链接”,它并没有告诉我如何准确地做到这一点(它适用于 AS 7.1.1 而不是EAP 6.0.1)。

更新

我对这个问题并不完全清楚。我不是在寻找对 Java EE API 的简单引用。我知道该怎么做,因为它很简单:

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

我也不是在寻找该规范 jar 的任何供应商版本我绝对不是在寻找以下一个:

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <version>1.0.0.Final</version>
    <type>pom</type>
</dependency>

我正在寻找的是项目中所有可用的实现库。JBoss AS 6 服务器运行时默认执行此操作,使用 JBoss AS 7/EAP 6 服务器运行时您可以通过转到服务器 -> 运行时环境 -> 默认类路径来执行此操作(您可以在此处输入单独的路径,或者只需添加/modules rootpath 将所有内容合二为一)

我正在 Maven 项目中寻找与此等效的东西。

我不是在寻找 SPEC 罐子!!!!

由于我需要单步执行目标服务器的ACTUAL IMPLEMENTATION jar,因此我真的需要 ACTUAL IMPLEMENTATION jar。我知道我无法部署这些,也不打算部署它们。它们需要存在于我的 IDE 中,因此有与目标 JVM 中的内容相匹配的源代码,我可以使用 CTRL-SHIFT-T 查找IMPLEMENTATION类并使用 CTRL-CLICK 导航到它们、分析调用层次结构等。

再次:我不是在寻找 SPEC 罐子!!!!

4

6 回答 6

3

您可以手动将依赖项导入到您的存储库中。我在我们的(人工制品)中做了它,它正在工作。

请参阅:https ://access.redhat.com/site/documentation/en-US/JBoss_Enterprise_Application_Platform/6/html/Development_Guide/Install_the_JBoss_Enterprise_Application_Platform_6_Maven_Repository_Locally.html

于 2013-07-05T17:57:40.053 回答
2

我自己发现了一个非常简单的解决方案:即使库是通过 Maven 管理的,并且默认情况下禁用了目标运行时,您仍然可以显式选择目标运行时。

这个目标运行时放在类路径中的库现在也将放在 Maven 项目的类路径中,除了那些 Maven 已经放在那里的库。您可以(手动)将源代码附加到这些库。

一旦你完成了调试并单步调试你的 AS 内部,你可以简单地再次删除目标运行时。

一个纯粹通过 Maven 和 JBoss EAP 6.0.1(不是 JBoss AS 7.1.1 或 7.1.3)的答案仍然受到欢迎,所以我不会接受我自己的答案;)

于 2013-02-04T17:26:16.170 回答
1

JBoss Maven 存储库有一个很好的解释:https ://community.jboss.org/wiki/MavenRepository

我猜您需要使用的存储库是:https ://repository.jboss.org/nexus/content/groups/public-jboss/ 它应该包含您正在寻找的所有 JBoss 工件。

也许 groupId/artifactId 不正确。存储库的搜索功能位于:https ://repository.jboss.org/nexus/index.html#welcome

我建议不要包含 impl jar,因为无论如何您都无法部署它们。所以规范罐子应该没问题:

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <version>1.0.0.Final</version>
    <type>pom</type>
</dependency>

见:http ://www.andygibson.net/blog/quickbyte/jboss-java-ee-6-spec-dependency-in-maven/

JBoss 服务器的 gav 似乎发生了很大变化。JBoss 7 位于:

<dependency>
  <groupId>org.jboss.as</groupId>
  <artifactId>jboss-as-ee</artifactId>
  <version>7.1.3.Final</version>
</dependency>
于 2013-01-31T08:58:54.843 回答
0

看看这里:

JBoss 企业应用平台组件详情

在我的 pom.xml 中,我使用它从 Jboss EAP 6.0.1 获取依赖项

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <type>pom</type>                
    <scope>provided</scope>
    <version>3.0.2.Final</version>
</dependency>
于 2014-01-28T04:37:45.037 回答
0

如果我没记错的话,您可以使用 Nexus 或 Git 或 Overlord 来管理项目工件以创建代理虚拟依赖项。

于 2015-11-03T21:31:37.597 回答
0

可以使用运行时工件:

<!-- https://mvnrepository.com/artifact/org.jboss.bom/eap-runtime-artifacts -->
<dependency>
    <groupId>org.jboss.bom</groupId>
    <artifactId>eap-runtime-artifacts</artifactId>
    <version>7.1.0.GA</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

请参阅https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.1/html/development_guide/using_maven_with_eap#manage_project_dependencies

于 2018-08-20T14:28:28.750 回答