假设我计划开发一个SDK,并且这个SDK应该支持不同的spring版本,例如Spring2.x、Spring3.x和Spring4.x,在SDK中只有很少的依赖项,
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>一种方法是设置${spring.version}不同的版本,但这将导致大量的维护成本。对这个问题有什么想法吗?
发布于 2016-08-25 09:27:03
如果要在所有春季版本中只使用几个类和具有相同签名的方法,我建议您查看理解Maven版本号,特别是表表7-1版本范围引用上的内容。例如,当您看到版本1.2,1.3意味着1.2 <= x <= 1.3。
对于您的情况,您必须将属性"spring.version“调整为:
<properties>
<spring.version>[2.0,4.3]</spring.version>
</properties>发布于 2016-08-25 08:26:02
首先,尽可能避免Spring依赖;例如,通常只需要为@Component注释包括@Component。假设您可以避免前向不兼容,只需根据最早兼容的Spring构建即可。例如,为Spring3.2编译的组件通常在Spring4.3中没有问题地加载。
但是,如果需要使用新Spring版本的特性,最好的方法是完全创建一个新工件。例如,当Thymeleaf需要使用仅在Spring4中添加的特性时,thymeleaf-spring4。这确实需要您付出更多的努力,但是对于您的所有用户来说,这将使构建和转换更加顺畅。
https://stackoverflow.com/questions/39139927
复制相似问题