我只是从 Spring 3.0.6 升级到 3.1,在 Tomcat 上运行它似乎存在问题。显然,它具有 Spring 3.0.6 依赖项,并会在启动时尝试使用它。然而,这与我的 Spring 3.1 应用程序冲突。我在尝试通过部署时得到了这个
mvn clean package tomcat:run
以及尝试在 Tomcat 7 中运行它时(通过 Eclipse 或将其复制到 tomcat webapps 文件夹)
这里有什么解决方案?升级到 Maven 3 会有所帮助吗?maven Tomcat 插件呢?1.1 已经发布,但版本 2 似乎仍在开发中。有没有人有使用 2.x 版本的 tomcat 插件的 pom 设置?
(我当前的错误日志基本上是这样说的:
java.lang.NoClassDefFoundError: org/springframework/core/annotation/AnnotationAttributes
这显然是 Spring 3.1 和 3.0.x 之间的版本冲突)
我对这个很迷茫,整天都在努力解决我模块中的依赖混乱以将它们升级到 3.1,所有测试都运行,现在我无法在 Tomcat 上运行它.. :(
编辑:我的弹簧依赖树:
module1:jar:1.0-SNAPSHOT:compile
+- modul2:jar:1.0-SNAPSHOT:compile
| +- module3:jar:1.1-SNAPSHOT:compile
| | +- org.springframework:spring-context:jar:3.1.1.RELEASE:compile
| | +- org.springframework:spring-beans:jar:3.1.0.RELEASE:compile
| | +- org.springframework:spring-aop:jar:3.1.0.RELEASE:compile
| | +- org.springframework:spring-aspects:jar:3.1.0.RELEASE:compile
| | +- org.springframework:spring-orm:jar:3.1.0.RELEASE:compile
| | | +- org.springframework:spring-jdbc:jar:3.1.0.RELEASE:compile
| | | \- org.springframework:spring-tx:jar:3.1.0.RELEASE:compile
| | \- org.springframework:spring-core:jar:3.1.0.RELEASE:compile
| +- org.springframework:spring-webmvc:jar:3.1.0.RELEASE:compile
| | +- org.springframework:spring-asm:jar:3.1.0.RELEASE:compile
| | +- org.springframework:spring-context-support:jar:3.1.0.RELEASE:compile
| | +- org.springframework:spring-expression:jar:3.1.0.RELEASE:compile
| | \- org.springframework:spring-web:jar:3.1.0.RELEASE:compile
| \- org.springframework:spring-test:jar:3.1.0.RELEASE:compile
\- org.springframework:spring-test-mvc:jar:1.0.0.BUILD-SNAPSHOT:test
编辑2:
出于某种奇怪的原因,当我从 .m2 文件夹中删除所有 Spring 3.0.6 库然后打包 webapp 时,它将再次下载所有 3.0.6 jar。然而,依赖关系树是上面的那个。我认为它与spring-security有关,它与版本有一些问题,并要求我覆盖我的安全模块pom中的瞬态依赖关系,这样它就不会使用旧的......
编辑3:
它是spring-data-jpa。显然最新版本仍然依赖于 Spring 3.0.6。通过覆盖 pom 中的依赖项,我可以让它与 Spring 3.1 一起使用,这样测试就可以通过了。将我的数据模块集成到我的 web 应用程序时,它会尝试使用 Spring 3.0.6 ......不知道如何解决这个问题。即使是spring-data-jpa 的最新 Realase Candidate(版本 1.1.0.RC1)仍然依赖于 Spring 3.0.7...