Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jar依赖于Spring框架,但应该包括哪个版本?_Java_Spring_Maven_Spring Boot - Fatal编程技术网

Java Jar依赖于Spring框架,但应该包括哪个版本?

Java Jar依赖于Spring框架,但应该包括哪个版本?,java,spring,maven,spring-boot,Java,Spring,Maven,Spring Boot,我有一个使用Spring框架构建的库。它使用@RestController并使用spring boot starter测试包进行测试 该库将在SpringMVC(可能是SpringBoot)内部运行 对我来说,最简单的事情是在POM中指定Spring Boot starter父级: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta

我有一个使用Spring框架构建的库。它使用@RestController并使用
spring boot starter测试
包进行测试

该库将在SpringMVC(可能是SpringBoot)内部运行

对我来说,最简单的事情是在POM中指定Spring Boot starter父级:

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.0.2.RELEASE</version>
</parent>

org.springframework.boot
spring启动程序父级
2.0.2.1发布
但是,我不知道使用我的库的项目是使用SpringBoot2.x还是SpringBoot1.x

那么,我该怎么办?即使我删除了
parent
标记,并开始尝试查找我需要重新编译库的所有依赖项,我不会再次遇到同样的问题,即SpringFramework 4.x与SpringFramework 5.x


我可以在POM.xml中做些什么来确保当我将我的库打包为jar时,jar将能够用于可以使用Spring Framework 4或5(同样也可以使用Spring Boot 1.x或Spring Boot 2.x)的项目中?

您可以将版本指定为如下变量

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>${version.spring-boot}</version>
</parent>

org.springframework.boot
spring启动程序父级
${version.spring boot}
因此,当他们使用你的库时,他们必须将其设置为一个变量

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <version.spring-boot>1.5.9.RELEASE</version.spring-boot>
    <version.spring-cloud>Edgware.SR2</version.spring-cloud>
</properties>

UTF-8
1.5.9.1发布
Edgware.SR2

您似乎不了解sping boot stater父级的用法……因为几个组件(如Spring本身等)的版本已经定义好了。。只需使用所需部分的groupId/artifactId…@khmarbaise您能详细说明您的建议吗?实际上,我试着在Spring Boot应用程序中运行我的库。我的库指定的spring boot starter父级为2.0,客户端模块指定的spring boot starter父级为1.5.8。有趣的是,一切顺利,Spring Boot徽标显示为v1.5.8。我想知道我是否没有什么需要做的,或者我是否会在某个场景中偶然发现一些问题,我现在没有锻炼?好的,做了一些测试。无论哪个驱动应用程序,即依赖于我的库的驱动应用程序,都是指示整个Spring版本的驱动应用程序。也就是说,它不包括Spring的两个版本。只是客户端模块声明为Spring引导版本的一个版本。美好的