it-swarm.com.ru

Неразрешимый родительский POM в Spring Boot

Я пытаюсь настроить проект Maven для приложения Spring Boot, но при попытке сохранить файл pom.xml у меня возникает следующая проблема:


Ошибка сборки проекта: неразрешимый родительский POM для
io.javabrains.springbootquickstart: course-api: 0.0.1-SNAPSHOT: Could не найти артефакт
org.springframework.boot: spring-boot-starter-parent: pom: $ {revision} in центральные (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
Kshitiz Sharma

Решил проблему . Была маленькая ошибка. Это должно быть1.4.2.RELEASEвместо1.4.2 RELEASE. Между RELEASE и 2 не должно быть пробела. Эта маленькая точка вызывала проблему.

2
Kshitiz Sharma

Откуда ревизия будет заменена?

Измените pom.xml, указав любую версию, как показано ниже.

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

Это может быть из-за весеннего инициализатора созданного файла проекта 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 -> Обновление проекта

2
Niraj Jha

Вот :

<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>

${revision} будет интерполироваться Maven (что переводится) только в том случае, если Maven найдет переменную с именем revision.
Но revision не является встроенными переменными Maven. Пока переменные как ${project.version} и ${project.artifactId} есть. 

Таким образом, в вашем случае вы должны объявить или передать переменную явно, если вы хотите использовать ее.

Например, это может сработать, добавив его:

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

Или запустив maven, например: mvn package -Drevision="1.4.2 RELEASE"

Вы можете найти больше информации здесь

Обратите внимание, что свойство revision имеет слишком широкое значение и не помогает понять значение свойства.
Более точное имя, такое как ${spring-boot-version}, имело бы больше смысла.

1
davidxxx