Maven Surefire Plugin 版本混乱

Maven Surefire Plugin version confusion

我是这样添加插件的:

    <maven.surefire.version>3.0.0-M5</maven.surefire.version>

    [...]

     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven.surefire.version}</version>
        <configuration>
          <parallel>methods</parallel>
          <useUnlimitedThreads>true</useUnlimitedThreads>
        </configuration>
      </plugin>

……一切顺利。

我将版本更改为 2.22.2 并得到错误:Plugin 'org.apache.maven.plugins:maven-surefire-plugin:2.22.2' not found

但是,当我在 IntelliJ 中进行工件搜索时,它确实找到了那个版本。好的,我将更改恢复到原来的版本。

现在,当我 运行 mvn test 以下内容引起了我的注意:

[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ regression-tests ---

为什么不使用 3.0.0-M5? 2.12.4 从何而来?我在 'surefire' 上的 pom.xml 中进行了搜索,但除了上面显示的内容外,没有其他匹配出现。

查看 IntelliJ 的首选项,我发现正在使用的存储库是 https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/,并且提到的所有版本都在那里。

谁能给我解释一下这是怎么回事?为什么找不到 2.22.2?为什么显示使用的是 2.12.4 而 3.0.0-M5 在 pom.xml?

为了完整起见,这是我的 mvn:

❯ mvn --version
Apache Maven 3.8.2 (ea98e05a04480131370aa0c110b8c54cf726c06f)
Maven home: /opt/homebrew/Cellar/maven/3.8.2/libexec
Java version: 1.8.0_292, vendor: Azul Systems, Inc., runtime: /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "11.5.2", arch: "aarch64", family: "mac"

Okay, I revert the change back to the original version I had.

更改 pom.xml 文件后,在 Maven 工具 window 中调用 Reload 操作。

可以看到Maven工具中使用的插件版本window:

您还可以在 IDE 中使用 Show Effective POM 操作来查看此 Maven 项目中使用的所有实际依赖项、插件及其版本: