我开始使用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依赖,也许......但是如何?
答案 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管理。您必须确保在部署应用程序的所有服务器上都有正确的版本。