轻型WAR和全局可用库

时间:2013-02-03 16:08:12

标签: java-ee maven jboss jboss7.x war

我开始使用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依赖,也许......但是如何?

1 个答案:

答案 0 :(得分:0)

你可以使用Jboss作为7模块系统,以便在JBoss模块远离战争时提供一些依赖性。

For an example on how to create and use a module you can look at this blog post.

pom.xml文件中,您应该为模块化jar添加scope元素,并将provided作为值(应该已经存在于Java EE依赖项中)。这将告诉maven罐子将由环境提供,不需要将它们放入战争中。

这种技术会让你的战争变得更轻,但你将失去对运行时权限的maven管理。您必须确保在部署应用程序的所有服务器上都有正确的版本。