我试图通过使用JBoss Modules将JasperReports,Apache POI和其他重型库直接放到JBoss AS来弄清楚如何使我的WAR更轻。
现在,Jasper使用许多库来生成PDF或XLS文件,如您所见here。我们的模板非常陈旧,我们仍然坚持使用旧的jasper版本3.7.1,它当然使用旧版本的库,例如已经存在于JBoss AS 7.1.1模块上的公共文件。
如何创建一个“大”模块,其中包含Jasper使用的所有jar并使用较新的模块保留应用程序的其他部分?
将所有jar放入单独的目录似乎无法保证成功,我们可以将所有内容放入一个模块而不创建类似于包的目录吗?
答案 0 :(得分:4)
我们最近开始使用JBoss模块并为Maven编写了一个小插件,它使用基于XML描述符的module.xmls生成模块文件夹。该插件名为smartics-jboss-modules-maven-plugin,您可以在project's blog找到有关该插件的其他信息。
我们刚刚开始使用它,但它已经使我们项目的POM和module.xml(加上目录结构)之间的同步过程非常容易。
这种方法的缺点是你必须学习一个额外的XML描述符,并且必须配置一个额外的Maven插件。
如果您想尝试一下,该插件已获得Apache License 2.0许可。
答案 1 :(得分:1)
外部库的JBoss模块的创建可以通过maven自动化,如SO的另一个答案here中所述。作者也发布了GitHub project。这可以减轻管理大量传递依赖的痛苦。