防止Glassfish使用自己的库版本而不是项目中的库

Glassfish将大量第三方库存储在其modules目录中。 令我惊讶的是,如果我的项目使用了存在的库,Glassfish将从那里提供它,而不是我在WAR文件中打包的正确版本。

这导致了许多错误。 例如,我使用jackson-datatype-joda版本2.6.3,它需要具有相同版本的jackson-databind ,并且它包含在我的项目中。 但Glassfish用版本2.3.2取代了该软件包,导致了这个问题 。

如何防止Glassfish(4.1)将我使用的库替换为其他版本?

将glassfish-web.xml文件添加到包含类似的内容的WEB-INF目录中,

    

这将确保在服务器类路径之前从战争中加载类