首页 文章

SpringBoot中不可解析的父POM

提问于
浏览
3

我正在尝试为Spring Boot应用程序设置Maven项目,但在尝试保存pom.xml文件时,我遇到以下问题:


项目构建错误:io.javabrains.springbootquickstart的不可解析的父POM:course-api:0.0.1-SNAPSHOT:找不到工件org.springframework.boot:spring-boot-starter-parent:pom:$ {revision在中心(https:// repo.maven.apache.org/maven2)和'parent.relativePath'指向错误的本地POM

这是我的pom.xml文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">


  <modelVersion>4.0.0</modelVersion>
  <groupId>io.javabrains.springbootquickstart</groupId>
  <artifactId>course-api</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <name>Java Api course</name>


 <parent>
    <!-- Your own application should inherit from spring-boot-starter-parent -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2 RELEASE</version>
  </parent>



 <dependencies>
   <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
 </dependencies>
</project>

4 回答

  • 1

    从哪里修改将被取代?

    通过指定如下所示的任何版本来修改 pom.xml .

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
    </parent>
    
  • 1

    解决了这个问题 . 有一点错误 . 它应该是 1.4.2.RELEASE 而不是 1.4.2 RELEASE . RELEASE和2之间不应该有空格 . 这个小点导致了这个问题 .

  • 2

    这里 :

    <parent>
      <!-- Your own application should inherit from spring-boot-starter-parent -->
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>${revision}</version>
    </parent>
    

    只有当Maven找到一个带有 revision 名称的变量时, ${revision} 才会被Maven(即已翻译)插入 .
    revision 不是Maven内置的变量 . 变量为 ${project.version}${project.artifactId} .

    因此,在您的情况下,如果要使用它,则必须明确声明或传递变量 .

    例如,它可以通过添加它来工作:

    <properties>
      <revision>1.4.2 RELEASE</revision>
    </properties>
    

    或者通过运行maven如: mvn package -Drevision="1.4.2 RELEASE"

    您可以找到更多信息here .

    请注意, revision 属性似乎具有太宽泛的含义,无助于理解属性含义 .
    一个更精确的名称,例如 ${spring-boot-version} 会更有意义 .

  • 2

    这可能是因为spring初始化器创建了这样的项目pom文件

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.5.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    

    但是,sts与版本“2.0.4.RELEASE”兼容,只需进行此更改即可

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.4.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    

    进一步Maven - >更新项目

相关问题