Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven:读取项目描述符失败错误_Java_Maven - Fatal编程技术网

Java Maven:读取项目描述符失败错误

Java Maven:读取项目描述符失败错误,java,maven,Java,Maven,我克隆了一个JAVA repo,当我试图用“mvn安装”构建它时,我得到了以下错误 Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.3.2.RELEASE from/to central (https://repo.maven.apache.org/maven2): Transfer failed for https://repo.maven.apache.org/mave

我克隆了一个JAVA repo,当我试图用“mvn安装”构建它时,我得到了以下错误

Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.3.2.RELEASE from/to central (https://repo.maven.apache.org/maven2): Transfer failed for https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/2.3.2.RELEASE/spring-boot-starter-parent-2.3.2.RELEASE.pom and 'parent.relativePath' points at no local POM @ line 6, column 13: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 2]
回购协议“https://repo.maven.apache.org/maven2“当我在Chrome中打开浏览器时,可以在浏览器中访问它

谷歌搜索之后,我在.m2文件夹中放了一个settings.xml文件,如下所示

<?xml version="1.0" encoding="UTF-8"?>
<settings>
  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>securecentral</activeProfile>
  </activeProfiles>
  <profiles>
    <profile>
      <id>securecentral</id>
      <!--Override the repository (and pluginRepository) "central" from the
         Maven Super POM -->    
      <repositories>
        <repository>
          <id>central</id>
          <url>https://repo1.maven.org/maven2</url>
          <releases>
            <enabled>true</enabled>
          </releases>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>https://repo1.maven.org/maven2</url>
          <releases>
            <enabled>true</enabled>
          </releases>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
</settings>

我的问题是,为什么我需要在settings.xml中手动添加和,为什么我仍然得到camel的错误?谢谢

您可以尝试运行
mvn-U clean install

-U
根据is for

强制检查远程服务器上缺少的版本和更新的快照 存储库

或者尝试删除本地存储库文件夹。有时,当网络出现问题时,它会变得一团糟。。。 您可以在.m2文件夹中找到您的本地回购文件夹(在windows上:C:\Users.m2)

您可以删除整个存储库文件夹,也可以只删除其中的一部分。之后,只需运行
mvn清洁安装

PKIX路径生成失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效证书路径

几乎可以肯定,系统上的根CA证书已经过时。
尝试更新您的JDK安装。请注意,您的浏览器使用的CA证书可能与JRE/JDK使用的证书不同

如果不了解系统的更多细节,就很难提供更准确的答案

提供可能的解决方法。

好的……开始工作了

@rkosegi的回答让我走上了正确的道路。我的浏览器使用的根CA证书与jdk使用的不同。这就是为什么我可以在浏览器中毫无错误地查看回购协议,但maven无法访问回购协议

不知何故,我的公司(金融机构)有一个根CA证书覆盖所有其他根CA证书,这意味着,当我打开任何网站(例如stackoverflow)时,证书路径总是显示如下:

我不是一个系统管理员,也不知道如何做到这一点,但无论如何,我需要做的就是将根CA证书保存为*.CER文件,并将其添加到jdk的cacert文件夹中


之后,命令“mvn clean install”运行完成,没有错误

要访问您的repo,您需要在jdk的安全目录中拥有证书。“请注意,您的浏览器使用的CA证书可能与JRE/jdk使用的证书不同。”嗯……这很有意义……我如何检查JRE/jdk使用的CA证书?我正在使用JDK 11,所以它不是一个过时的版本。有人建议:1)下载浏览器用于本地的CA根证书2)将其复制到$JAVA_HOME/lib/security文件夹,3)然后运行“keytool-importcert-file yourCertFile.pem-keystore cacerts-alias'TheCARoot”。这也是你的建议吗?谢谢
Failed to read artifact descriptor for org.apache.camel.springboot:camel-salesforce-starter:jar:3.4.2: Could not transfer artifact io.dropwizard.metrics:metrics-bom:pom:4.1.9 from/to central (https://repo.maven.apache.org/maven2): Transfer failed for https://repo.maven.apache.org/maven2/io/dropwizard/metrics/metrics-bom/4.1.9/metrics-bom-4.1.9.pom: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]