4

我有一个将作为战争部署到 JBOSS 5.1 的 Maven 应用程序。我想知道如何获取它,以便 Maven 可以在编译时使用 JBOSS 5.1 jar(即 common/lib 文件夹中的所有 jar 以及运行时 JBOSS 可用的任何其他资源),但不将它们捆绑到 war 文件中。

我以为我可以只包含某种具有提供范围的 JBOSS 依赖项来执行此操作,但是我找不到这样的依赖项。我已经做了很多搜索,但无法真正找到这样的依赖关系。有很多引用指向中央 JBOSS 存储库并从那里提取依赖项。我认为只有一个全局依赖项包含所有 JBOSS 运行时 jar。奥斯有这样的事情吗?

4

2 回答 2

4

如果你需要的不仅仅是标准的 Java EE API,比如 JBoss 包或者解决一些兼容性问题,你可以使用这个依赖:

对于 JBoss / Java EE 7 规范 API

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-7.0</artifactId>
    <version>1.0.1.Final</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

对于 JBoss/Java EE 6 规范 API

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

对于 JBoss WildFly 8.2.0.Final 完整的运行时依赖项

<dependency>
    <groupId>org.wildfly</groupId>
    <artifactId>wildfly-parent</artifactId>
    <version>8.2.0.Final</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

现在,您还可以使用这些 POM 文件来提取您需要的特定依赖项。

这在远程调试时很有用,可以让您的 IDE 自动解析服务器依赖项 jar 和当前加载的源,或出现在堆栈跟踪中……在开发模式下。

在生产 MAVEN 构建中,您可能只需要这种配置(取决于您的 JBoss 版本): http: //www.mastertheboss.com/jboss-server/wildfly-8/maven-configuration-for-java-ee- 7-projects-on-wildfly

于 2014-12-31T14:35:16.053 回答
2

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

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

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

于 2013-03-01T16:12:37.687 回答