web-dev-qa-db-fra.com

POM parent non résolvable dans Spring Boot

J'essaie de configurer un projet Maven pour une application Spring Boot, mais lors de la tentative d'enregistrement du fichier pom.xml, le problème suivant se pose:


Erreur de construction du projet: POM parent non résolvable pour
io.javabrains.springbootquickstart: course-api: 0.0.1-SNAPSHOT: Pourrait pas trouvé un artefact
org.springframework.boot: printemps-boot-starter-parent: pom: $ {revision} dans central (https: // repo.maven.Apache.org/maven2) et 'parent.relativePath' pointe vers le mauvais POM local

Voici mon fichier 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

Résolu le problème ... Il y avait une petite erreur. Ce devrait être1.4.2.RELEASEau lieu de1.4.2 RELEASE. Il ne devrait pas y avoir d'espace entre RELEASE et 2. Ce petit point était à l'origine du problème.

2
Kshitiz Sharma

D'où la révision sera remplacée?

Modifiez pom.xml en spécifiant une version comme ci-dessous.

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

Cela peut être dû au fichier pom du projet créé par l'initialisateur du printemps, comme ceci 

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

Cependant, sts est compatible avec la version "2.0.4.RELEASE", il suffit de faire ce changement

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

plus loin Maven -> Update Project

2
Niraj Jha

Ici :

<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} sera interpolé par Maven (traduit) uniquement si Maven trouve une variable portant le nom revision.
Mais revision n’est pas un Maven construit dans des variables. Alors que les variables comme ${project.version} et ${project.artifactId} sont. 

Donc, dans votre cas, vous devez déclarer ou transmettre explicitement la variable si vous souhaitez l’utiliser.

Par exemple, cela pourrait fonctionner en l'ajoutant:

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

Ou en exécutant maven tel que: mvn package -Drevision="1.4.2 RELEASE"

Vous pouvez trouver plus d'informations ici

Notez qu'une propriété revision semble avoir une signification trop large et n'aide pas à comprendre la signification de la propriété.
Un nom plus précis, tel que ${spring-boot-version}, aurait plus de sens.

1
davidxxx