如果pom.xml中的spring boot 2没有指示插件的版本,将会发生什么。会自动使用最新版本吗?例如maven-surefire-plugin。
<build>
<!--Закомментировать если сборка с Java-->
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
<!---->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
答案 0 :(得分:2)
从maven 3.x documentation
在没有POM中给出显式版本的情况下调用插件时 或在命令行上,Maven 2.x用于选择最新版本 在最新版本可能是发行版或 快照。为了稳定起见,Maven 3.x首选最新的 发布版本,而不是最新快照版本。
鉴于自动生成的不可复制构建的威胁 插件版本解析,此功能计划于 就POM中的插件声明而言。 Maven的用户 3.x在检测到缺少的插件版本时会发出警告,以鼓励将插件版本添加到POM或 它的父POM之一。 Enforcer规则requirePluginVersions可以是 用于检查POM中缺少的插件版本。
答案 1 :(得分:2)
这实际上取决于您父母的身份。 Spring Boot的父级有pluginManagement
个插件(包括surefire),因此它将使用该版本。这是一个固定版本,取决于您使用的Spring Boot版本。
即使您使用最新的Spring Boot版本,也无法保证它将是最新版本,因为我们试图与我们的升级策略保持一致。您可以通过mvn help:effective-pom
自己找出答案。