当我将 spring-boot-starter-parent 与本地存储库和 jgitver 结合使用时,出现以下错误:
[ERROR] The project tmplsvcpkg:TMPL_SVC_NAME-parent:0.0.0-27-a592e4fb-feature_gitlabci-dirty (/home/user/git/service-template/pom.xml) has 1 error
[ERROR] Non-resolvable parent POM for org.springframework.boot:spring-boot-starter-parent:[unknown-version]: Could not find artifact org.springframework.boot:spring-boot-dependencies:pom:0.0.0-27-a592e4fb-feature_gitlabci-dirty in internal-repository (https://mvnrepo) @ org.springframework.boot:spring-boot-starter-parent:[unknown-version], /home/user/git/service-template/.m2/repository/org/springframework/boot/spring-boot-starter-parent/2.2.0.RELEASE/spring-boot-starter-parent-2.2.0.RELEASE.pom, line 3, column 11 -> [Help 2]
注意spring-boot-starter-parent 的unknown-version和 spring-boot- dependencies 的 0.0.0-27-a592e4fb-feature_gitlabci-dirty。0.0.0-27-...版本是jgitver计算出来的版本。看起来版本分辨率以某种方式搞砸了。如果我将本地存储库更改为项目之外的任何目录,它就会重新开始工作。如果我抑制 jgitver,它会再次开始工作。如果我在我的项目中更深入地定义本地存储库(如 maven.repo.local=x/y/z/.m2/repository,错误仍然存在。
我以这种方式在 pom.xml 中定义了父级:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RELEASE</version>
</parent>
我以这种方式运行我的 Maven:
mvn compile -Dmaven.repo.local=.m2/repository -U
如果我添加 jgitver.skip=true,一切正常。
我怀疑这可能与 spring-boot-starter 父级将其父级(spring-boot-dependencies)定义为相对于其位置的事实有关:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.0.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
有没有人知道为什么会发生这种情况以及如何解决?