如何在可部署的战争中阻止Maven包含某些依赖?

时间:2012-07-19 01:23:37

标签: spring security maven dependency-management

我正在将使用Spring security 3.0的应用程序迁移到Spring security 3.1。

我收到有关引用错误架构的错误:

SEVERE: Exception sending context initialized event to listener instance of class    
org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration    
problem: You must use a 3.0 schema with Spring Security 3.0.(2.0 or 3.1 versions are not  
valid) Please update your schema declarations to the 3.0.3 schema (spring-security- 
3.0.3.xsd).
Offending resource: ServletContext resource [/WEB-INF/security-context.xml]

当我查看/ lib时,我看到许多3.1版本的jar都被复制为3.0版本。我怀疑这是造成上述错误的原因。

当我使用Eclipse Maven插件查看pom.xml的依赖关系树时,我可以看到引用早期版本的位置(例如spring-security-acl取决于几个3.0罐),但它们被标记为'省略与......的冲突。这不意味着它们应该从构建的war文件中省略吗?

我已经尝试在我的pom的根目录中明确命名这些文件的3.1版本,但旧版本仍然包含在内。

2 个答案:

答案 0 :(得分:1)

  

攻击资源:ServletContext资源   [/WEB-INF/security-context.xml]

实际上,该消息表明security-context.xml使用与spring-security-3.1不兼容的架构/声明。该消息要求您使用3.0版本的库。您可能需要查看并更新它并重试。

答案 1 :(得分:0)

我仍然不确定发生了什么,但我尝试在Eclipse中使用相同的pom和源文件创建一个新项目,现在该项目似乎表现得很好。