Maven 和 Spring 引导 - 不可解析的父 pom - repo.spring.io(未知主机)

Maven and Spring Boot - non resolvable parent pom - repo.spring.io (Unknown host)

我正在尝试构建我的项目,但我得到了这个:

Non-resolvable parent POM: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:1.3.0.M3 from/to spring-snapshots (http://repo.spring.io/snapshot): repo.spring.io and 'parent.relativePath' points at no local POM @ line 16, column 10: Unknown host repo.spring.io -> [Help 2]

以下是我如何指定 pom.xml 的父级:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.0.M3</version>
    <relativePath></relativePath>
</parent>

它是空的,因此它强制 maven 在远程存储库中查找父级。但是,它说 repo.spring.io 是未知主机

以下是我在 pom.xml 中定义存储库的方式:

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <url>http://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-milestones</id>
        <url>http://repo.spring.io/milestone</url>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <url>http://repo.spring.io/snapshot</url>
    </pluginRepository>
    <pluginRepository>
        <id>spring-milestones</id>
        <url>http://repo.spring.io/milestone</url>
    </pluginRepository>
</pluginRepositories>

有什么想法吗?

很明显这是您的网络连接问题。检查您是否可以使用浏览器访问 http://repo.spring.io。如果是,检查是否需要配置代理服务器。如果不是,您应该联系您的互联网提供商。

这是文档,如何为 Maven 配置代理服务器:https://maven.apache.org/guides/mini/guide-proxies.html

如果您在 WindowsOSX[= 上使用 docker-machine(docker 22=]).

目前 docker-machine 有一个错误,如果您在 wifi 网络或 wifi 和电缆之间切换,它会失去互联网连接。

确保重新启动 docker-machine

通常:docker-machine restart default

项目上的右键 -> Maven -> 更新

Project->maven->Update Project->勾选所有复选框期望 offline 错误很快就解决了。

问题在于您的项目无法完成 Maven 构建。 遵循的步骤:

  1. 右键单击应用程序和 RunAs maven 安装。
  2. 如果您在访问在线存储库时遇到任何错误,请尝试在您的 .m2 directory.Check 下的 settings.xml 中提供代理 link for setting proxies for maven build.
  3. 完成后,尝试通过右键单击项目、Maven->更新 Maven 项目和 select 代码库来更新项目,并选中强制更新 Snapshot/Release 复选框。

这将更新您的 Maven 构建,并且肯定会删除您的 pom.xml

错误

在我的例子中,问题是 java pom.xml (java 1.8) 和环境变量 JAVA_HOME/JDK_HOME (java 1.7) 的版本不匹配.将环境变量 JAVA_HOME & JDK_HOME 指向 Java 1.8 后,问题得到解决。

对于遇到这个问题的任何人,我将 post 解决类似问题(除了 uknown host 部分之外的相同错误消息)。

自 2020 年 1 月 15 日起 maven central no longer supports HTTP,支持 HTTPS。 因此,spring 个存储库 switched to HTTPS as well

因此,解决方案是将网址从 http://repo.spring.io/milestone 更改为 https://repo.spring.io/milestone

降级你的版本

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

构建和撤消版本,构建。 2.1.6.RELEASE 到 1.3.3.RELEASE 构建 撤消 1.3.3 到 2.1.6 构建(在我的例子中问题已解决) 它帮助了我们。

如前所述,可能是网络问题或代理配置问题。
我在搜索相同问题时发现了这个问题。在我的例子中,它是代理配置。
这里发布的答案没有解决我的问题,因为每个 link 都建议一个显示用户名和密码的配置,但我无法使用它。
我在其他地方搜索它,发现要在 settings.xml 上进行配置,我需要进行一些更改。这是最终代码:

<profiles>
    <profile>
       <id>MavenRepository</id>
           <repositories>
            <repository>
                <id>central</id>
                <url>https://repo1.maven.org/maven2</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
                <releases>
                    <enabled>true</enabled>
                </releases>
            </repository>
        </repositories>
    </profile>
</profiles>

<activeProfiles>
    <activeProfile>MavenRepository</activeProfile>
</activeProfiles>

希望对你有用。

如果您正在使用 docker 服务并且您已切换到其他网络。您需要重新启动 docker 服务。

服务docker重启

这解决了我在 docker 中遇到的问题。

在pom.xml中(在eclipse中加载有效pom.xml后),你可能会看到它“http://repo.maven.apache.org/maven2" under central repository instead of "https://repo.maven.apache.org/maven2”。修复它

温馨提示:我试过用idea和import maven,遇到了同样的问题,所有方法都试过了,还是不行。最后,我发现是因为root权限...我用管理员权限打开idea,一切正常,希望你不要像我一样傻...

如果以上所有方法都不起作用。试试这个。 如果您使用的是 IntelliJ。检查以下设置:

可能是 ~/.m2/settings.xml 限制连接到互联网。

右击pom.xml>maven>更新maven项目>勾选Snapshots/Releases

的强制更新

出现错误“不可解析的父 POM:无法传输工件等”后, 我发现我确实需要配置代理服务器。

然而,尽管重新启动等,错误只是在执行以下操作后才消失: mvn dependency:purge-本地存储库

猜测这与重新解析依赖关系有关: Apache documentation about purging local repository dependencies

我遇到了同样的问题。原因是互联网连接。我换了ISP就解决了。

这对我有用! 尝试导航到 Maven 选项卡,然后单击安装。 完成后,再次尝试解决依赖关系。