当前位置: 首页 > 知识库问答 >
问题:

如何修复Maven build中从start.spring.io初始化的新Spring Boot应用程序的错误

盛琪
2023-03-14

我正在尝试设置一个使用start.spring.io初始化的spring-boot项目
此错误显示在初始构建pom.xml

错误截图

无法将org.apache.maven.plugins:maven-surefire-plugin:pom:2.22.2从https://repo.spring.io/milestone缓存在本地存储库中,在spring-milestone的更新间隔过去或强制更新之前,将不会重新尝试解决。原始错误:无法将项目org.apache.maven.plugins:maven-surefire-plugin:pom:2.22.2从/到spring-milegores(https://repo.spring.io/milestone):sun.security.validator.validatorexception:PKIX路径构建失败:sun.security.provider.certpath.suncertpathbuilderexception:找不到请求目标的有效认证路径

我已经创建了一个新的eclipse工作区,并多次尝试重建项目,我还使用初始化器用不同版本的spring boot初始化了项目。

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.BUILD-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.aptechnolo.moneytree</groupId>
    <artifactId>moneytree</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>moneytree</name>
    <description>Money Tree</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>

我想成功地构建这个项目。

共有1个答案

张森
2023-03-14

解决这一问题涉及两个部分:

>

  • 修复SSL密钥验证问题。

    sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    

    这意味着https://repo.spring.io/milestone提供的证书不受运行Maven的JDK的信任。这是一个棘手的问题,以远程排除。您的本地JAVA_HOME环境变量是否指向JDK的最新补丁版本?如果没有,则抓取最新的补丁版本,并相应地更新环境变量。

    Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.22.2 from https://repo.spring.io/milestone was cached in the local repository    
    

    这可能不是必需的,这取决于Spring-里程碑的更新间隔以及Maven首次将其缓存到本地repo中之后是否已经过了这段时间。要清除缓存的条目,导航到~/.m2/repository/org/apache/maven/plugins/maven-surefire-plugin/并删除名为2.22.2的目录。然后再次尝试您的Maven构建。如果您再次得到SSL错误,我们需要在步骤1上更加努力。

  •  类似资料:
    • 我正在发布一个在我的计算机(windows 10)上工作正常的应用程序,但在目标计算机(windows 7)上不工作 我尝试在没有签署ClickOnce清单的情况下发布,我已经将所有引用copy local设置为true,我确保目标machine.NET版本相同,我已经研究了堆栈溢出的所有类似主题,但没有任何帮助。 源代码部署url:file:///i:/systems/systems%20tea

    • 我正在尝试使用Apache Ignite内置工具SQLLine连接到Apache Ignite服务器。我得到错误: 我让Apache Ignite在一个容器中运行,CentOS7在另一个容器中运行。在同一网络中运行的两个容器(ping是双向的)。尝试的连接发生在从CentOS7到Apache Ignite之间。 我应该能够用命令。这不起作用,并且throwsIgniteJDBCThinDriver

    • 背景:我构建了一个Jersey应用程序(即一个WAR),并在服务器集群上部署它,在不同的服务器上配置不同的Spring配置,以启用或禁用服务器的不同部分,例如,某些服务器启用了资源,等等。这在Jersey 1.0中非常容易:我只是说, 在Spring配置中,让Jersey扫描特定包并启用其中的JAX-RS资源提供者。 现在在Jersey 2.0中,Spring不起作用,因此必须以编程方式在从派生的

    • 问题内容: 我正在尝试运行脚本,但始终收到此错误: 我该如何解决? 问题答案: 我遇到了同样的问题,我在同一文件夹中创建了一个文件,名为requests.py。因此,它实际上是在导入该文件,而不是实际上在请求您使用pip安装。然后,我创建的名为logging.py的文件出现了另一个问题。我都重命名了,问题解决了。听起来像是同样的问题…

    • 我想不出如何使爆米花工作,如下所示:https://getbootstrap.com/docs/4.0/components/popovers/. 文档中提到了popover支持是一个插件,并且需要工具提示插件,所以我修改了我的要添加这两个,现在看起来如下所示: 我还没有找到任何关于引导插件概念的文档,所以上面关于和的两行来自搜索,不确定它们是否正确。 留档声明: Popovers是基于性能原因选

    • 我想使用nss作为pkcs11的提供者,我正在oracle JRE和ubuntu 64位上用java编码。我尝试了两种不同的包装,iaik和SunPKCS11,但在这两种包装中我遇到了相同的问题。对于我的提供者,我首先尝试使用libnss3。所以每次我在实例模块中得到IOException。然后我使用libsoftokn3。因此,我成功地实例化了一个模块。但现在我在初始化时遇到了这个异常:“CKR