web-dev-qa-db-ja.com

Spring Bootで解決できない親POM

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>
6
Kshitiz Sharma

問題を解決しました。少し間違いがありました。それは1.4.2.RELEASEの代わりに1.4 2 RELEASERELEASEと2の間にスペースがあってはなりません。この小さなドットが問題の原因でした。

3
Kshitiz Sharma

これは、春の初期化子がこのようなプロジェクトの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-> Update Project

5
Niraj Jha

どこからリビジョンが置き換えられますか?

変更pom.xml以下のようなバージョンを指定します。

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

ここに :

<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がrevision名の変数を検出した場合にのみ、Mavenによって補間されます(変換されます)。
しかし、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