对于较小的依赖关系,这对于部署是私有的,请将WEB-INF/lib
保留在您的.war
中,这就是它的用途。如果您使用的Maven对于范围内的任何内容都应该是非常自动和透明的。
对于大的,复杂的依赖关系或依赖性那将几个应用程序之间共享,使用选项(4):
部署每个逻辑库(如“OpenJPA的”或“Log4J的”)作为一个模块,包括它的api和impl jars以及其他AS7模块尚未提供的依赖JAR。如果已经有一个模块添加了对它的依赖关系,而不是添加JAR到你的模块。如果几个不同的库共享一些常见的依赖关系,请将它们拆分为模块并将其作为模块依赖关系添加到module.xml
中。
使用jboss-deployment-structure.xml进行部署.war
/.ear
/任何声明模块的依赖关系,如果它不是自动检测和自动加载。
我觉得这是一个中等到低调的方法,效果很好。在部署中将所有东西都转储到WEB-INF/lib
更麻烦,这是Java EE标准要做的事情。它加速了重新部署,并通过减少类别/版本冲突来节省大量的部署/测试时间。
如果您愿意做一些工作,您可以使用Maven和maven-dependency-plugin生成已包含传递依赖项的模块。你可以在module I wrote for EclipseLink integration in AS 7中看到一个例子。我尽可能自动创建AS7模块。
我想迁移到JBoss7并不断获取类路径输入错误,例如。 “不指向一个有效的类路径引用jar” - 似乎你解决/没遇到这样的错误。这可能与JBoss7 Class加载有关,不少人遇到同样的问题,但没有解决方案 - 你有什么想法吗? –
听起来像你的问题要么在你的module.xml文件中(如果你正在将JAR加载为模块)或者你的jboss-deploment-structure.xml文件。引用静态库JAR的最好方法是将它们放在modules目录的子目录中。如果您试图引用“org.foo.bar.FooBar;”在你的FooBarJar.jar文件中,你的目录结构想成为“JBOSS_HOME/modules/org/foo/bar/main/FooBarJar.jar”,你需要包含你的“JBOSS_HOME/modules/org/foo/bar/main /modle.xml“文件来定义映射到jar以及它可能具有的任何依赖关系... – travega
...(继续)您的模块。xml文件将如下所示: <! - - 在此插入资源 - > <依赖性> <! - 在此处插入依赖 - > 依赖> ”。然后,您可以将模块引用添加到位于WAR的WEB-INF目录中的jboss-deploment-structure.xml文件。这会看起来像这样:“ ”...... –
travega