Jer*_*nce 26 spring dependencies maven-2 maven
我正在使用Spring 3和Maven.我在我的pom.xml中定义了所有spring模块.
当我使用时<aop:scoped-proxy />,我得到一个错误,说CGLIB丢失了.
好吧......我把CGLIB添加为我的pom中的一个依赖项,它全部运行...
我有点困惑...... Maven是一个依赖管理器......当我使用spring-aop模块时为什么不下载CGLIB?
这不是唯一的情况......为什么有些项目需要显式依赖声明而不是使用Maven传递依赖机制?
Pas*_*ent 17
我有点困惑...... Maven是一个依赖管理器...当我使用spring-aop模块时为什么不下载cglib?
因为不是每个人都使用CGLIB(Spring中的AOP代理可以是JDK动态代理或CGLIB代理)所以CGLIB被标记为spring-aop pom中的可选依赖项,如果要使用它,则必须明确添加它.这正是可选依赖项的用途.
另一个类似的例子是Hibernate,它允许你以相同的方式在hibernate-core中选择cglib和javassist .Hibernate也可以让你选择不同的连接池之间(如果你决定使用其中之一)或缓存提供商(仅ehcache的,默认的,未声明为可选).
我的猜测是默认情况下在Spring中没有启用cglib.因此,除非您明确启用它,否则它不会包含在pom中.
据我所知,Maven无法进入Spring配置文件并确定是否需要其他可选的库.虽然,如果有可能通过插件动态修改pom,这听起来肯定会是一个很酷的Spring-Maven插件.不确定是不是,但它会很酷.
| 归档时间: | 
 | 
| 查看次数: | 17805 次 | 
| 最近记录: |