0

我开始使用 JBoss7.1 快速入门的体系结构构建我的 Web 应用程序。

我喜欢它,但现在我需要在我的项目中添加一些库,所以我在 pom.xml 中添加了几个依赖项。例如,这是针对 JasperReports 的:

<dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>5.0.0</version>
        </dependency>

等等,对于其他图书馆。不幸的是,在构建我的项目之后,我注意到“ mvn package ”产生的战争大小是.... 36MB?!?太多了,我得把那个东西上传到远程服务器上,快!

笨重的东西都存储在 /WEB-INF/lib 中,并且确实是一组 JAR(我作为依赖项包含的库)。

在我的战争中不必每次都包含不必要的有效载荷的最佳实践是什么?

我想我应该在 JBoss 环境中的某个地方包含 JAR 并以不同的方式声明 maven 依赖项,也许......但是如何?

4

1 回答 1

0

您可以将 Jboss 用作 7 模块系统,以将一些依赖关系作为 JBoss 模块从战争中带走。

有关如何创建和使用模块的示例,您可以查看此博客文章。

pom.xml文件中,您应该scope为模块化的 jar 添加一个带有providedas 值的元素(应该已经存在于 Java EE 依赖项中)。这会告诉 maven jar 将由环境提供,无需将它们放入战争中。

这种技术将使您的战争更轻松,但您将失去对运行时依赖项的 maven 管理。您必须确保在将部署应用程序的所有服务器上都有正确的版本。

于 2013-02-03T17:05:55.700 回答