SpringBoot中不可解析的父POM

时间:2018-08-03 12:08:03

标签: java spring maven spring-boot pom.xml

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


  

项目构建错误:不可解析的父POM用于
  io.javabrains.springbootquickstart: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>

7 个答案:

答案 0 :(得分:3)

将从何处替换修订版本?

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:3)

这可能是因为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->更新项目

答案 3 :(得分:1)

这里:

<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}的变量时,Maven才会对

revision进行插值(已翻译)。
但是revision不是Maven内置变量。而变量${project.version}${project.artifactId}则是。

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

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

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

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

之类的Maven。

您可以找到更多信息here

请注意,revision属性似乎含义太广,无助于理解该属性的含义。
${spring-boot-version}这样更精确的名称会更有意义。

答案 4 :(得分:1)

替换

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

使用

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

答案 5 :(得分:0)

检查您的代理设置。 如果您使用的公司PC已为浏览器配置了代理,但尚未为IDE或maven配置代理,则可能输入与浏览器相同的信息。您可以找到它们,例如通过打开浏览器的网络设置->局域网设置,然后从输入字段中指定的地址下载proxy.pac文件。该文件是人类可读的。

在那之后,您可能仍然需要通过以下两种方法来处理SSL错误

答案 6 :(得分:0)

对我来说,实际上AntiVirus正在我的系统中运行。因此,我已将其禁用了一个小时,并将其版本更改为2.0.4.RELEASE,并且对我有效。