Spring Boot 中不可解析的父 POM
Non-resolvable parent POM in SpringBoot
我正在尝试为 Spring 引导应用程序设置 Maven 项目,但是在尝试保存 pom.xml 文件时我遇到了以下问题:
Project build error: Non-resolvable parent POM for
io.javabrains.springbootquickstart:course-api:0.0.1-SNAPSHOT: Could
not find artifact
org.springframework.boot:spring-boot-starter-parent:pom:${revision} in
central (https:// repo.maven.apache.org/maven2) and
'parent.relativePath' points at wrong local 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>
从哪里替换修订版?
通过指定如下任意版本来修改 pom.xml
。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
问题已解决。
有一个小错误。应该是 1.4.2.RELEASE 而不是 1.4.2 RELEASE。 RELEASE 和 2 之间不应有 space。这个小点导致了这个问题。
这里:
<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"
您可以找到更多信息here。
请注意,revision
属性 的含义似乎过于宽泛,无助于理解 属性 的含义。
更精确的名称,例如 ${spring-boot-version}
会更有意义。
这可能是因为 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 -> 更新项目
检查您的代理设置。
如果您使用的公司 PC 已经为浏览器配置了 Proxy,但还没有为您的 IDE 或 maven 配置代理,您可能可以输入与浏览器相同的信息。你可以找到他们,例如打开浏览器的网络设置 -> LAN 设置,然后从输入字段中提供的地址下载 proxy.pac 文件。该文件是人类可读的。
之后,您可能仍需要通过以下任一方法处理 SSL 错误
- 正确处理公司自身的PKI或
- 忽略 SSL 错误或
- 使用 http 而不是 https 自 2020 年以来不再可能
替换
<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>
对我来说,实际上 AntiVirus 在我的系统中运行。因此,我将其禁用了一个小时并将我的版本更改为 2.0。4.RELEASE 它适用于我。
我正在尝试为 Spring 引导应用程序设置 Maven 项目,但是在尝试保存 pom.xml 文件时我遇到了以下问题:
Project build error: Non-resolvable parent POM for
io.javabrains.springbootquickstart:course-api:0.0.1-SNAPSHOT: Could not find artifact
org.springframework.boot:spring-boot-starter-parent:pom:${revision} in central (https:// repo.maven.apache.org/maven2) and 'parent.relativePath' points at wrong local 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>
从哪里替换修订版?
通过指定如下任意版本来修改 pom.xml
。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
问题已解决。 有一个小错误。应该是 1.4.2.RELEASE 而不是 1.4.2 RELEASE。 RELEASE 和 2 之间不应有 space。这个小点导致了这个问题。
这里:
<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"
您可以找到更多信息here。
请注意,revision
属性 的含义似乎过于宽泛,无助于理解 属性 的含义。
更精确的名称,例如 ${spring-boot-version}
会更有意义。
这可能是因为 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 -> 更新项目
检查您的代理设置。 如果您使用的公司 PC 已经为浏览器配置了 Proxy,但还没有为您的 IDE 或 maven 配置代理,您可能可以输入与浏览器相同的信息。你可以找到他们,例如打开浏览器的网络设置 -> LAN 设置,然后从输入字段中提供的地址下载 proxy.pac 文件。该文件是人类可读的。
之后,您可能仍需要通过以下任一方法处理 SSL 错误
- 正确处理公司自身的PKI或
- 忽略 SSL 错误或
- 使用 http 而不是 https 自 2020 年以来不再可能
替换
<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>
对我来说,实际上 AntiVirus 在我的系统中运行。因此,我将其禁用了一个小时并将我的版本更改为 2.0。4.RELEASE 它适用于我。