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>
問題を解決しました。少し間違いがありました。それは1.4.2.RELEASEの代わりに1.4 2 RELEASERELEASEと2の間にスペースがあってはなりません。この小さなドットが問題の原因でした。
これは、春の初期化子がこのようなプロジェクトの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
どこからリビジョンが置き換えられますか?
変更pom.xml
以下のようなバージョンを指定します。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
ここに :
<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}
などのより正確な名前の方が意味があります。