java - Spring MVC 项目上的“缺少 Artifact ”和 'Failed to read artifact descriptor' 错误

标签 java spring maven spring-mvc pkix

我在 Spring MVC 项目上遇到多个“缺少 Artifact ”和“无法读取 Artifact 描述符”错误,例如:

  • 缺少 com.google.guava:guava:jar:20.0
  • 无法读取 com.brooksandrus:swfheader:jar:1.0
  • 的 Artifact 描述符

我想知道:

  • 它们到底是什么意思
  • 如何解决这些问题

我对这些错误的看法:

  • 此外,我在公司防火墙后面运行该项目可能与 maven clean install 失败并出现以下错误有关:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径
    实际上,通过在 cacerts 文件中安装每个必需的证书就可以解决这个问题。

我已经尝试过:

  • 更新 Maven 项目并选中“强制更新快照”。
  • 删除整个 .m2 文件夹,然后尝试 Maven 更新。
  • 已关注 this SO solution将证书添加到 cacerts 文件中,然后重新运行前两个步骤。这实际上是我解决此错误无法找到请求目标的有效认证路径的方法,尽管它对解决我提到的“缺少 Artifact ”和“无法读取 Artifact 描述符”的主要问题没有帮助'.

这些方法都对问题没有任何影响。

另一个重要的事实是,除了所有这些错误之外,Tomcat 成功启动并且项目运行正常。

这是 pom 文件的示例部分。

<?xml version="1.0" encoding="UTF-8"?>
<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <groupId>gr.xxxxxx</groupId>
    <artifactId>xxxxxx</artifactId>
    <version>2.2.7</version>
    <packaging>war</packaging>
    <name>xxxxxx</name>
    <description>xxxxxx</description>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>4.3.23.RELEASE</spring.version>
        <spring.security.version>4.2.12.RELEASE</spring.security.version>
        <hibernate.version>4.1.4.Final</hibernate.version>
        <build.plugins.plugin.version.compiler>3.3</build.plugins.plugin.version.compiler>
        <build.plugins.plugin.version.javadoc>2.10.3</build.plugins.plugin.version.javadoc>
        <junit.version>4.11</junit.version>
        <hamcrest.version>1.3</hamcrest.version>
        <tika.version>1.7</tika.version>
        <mockito.version>1.10.19</mockito.version>
        <doclava.version>1.0.6</doclava.version>
        <adwords.version>4.7.0</adwords.version>
        <hikari.version>3.3.1</hikari.version>
        <mariadb.version>2.4.2</mariadb.version>        
        <thymeleaf.version>3.0.11.RELEASE</thymeleaf.version>
        <stagemonitor.version>0.88.10</stagemonitor.version>
        <javamelody.version>1.79.0</javamelody.version>
        <dynamicreports.version>5.0.0</dynamicreports.version>
        <timestamp>${maven.build.timestamp}</timestamp>
        <maven.build.timestamp.format>dd/MM/yyyy HH:mm</maven.build.timestamp.format>
    </properties>
    <repositories>
        <repository>
            <id>jsqlparser-snapshots</id>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <url>https://oss.sonatype.org/content/groups/public/</url>
        </repository>
        <repository>
            <id>mulesoft-releases</id>
            <name>MuleSoft Releases Repository</name>
            <url>http://repository.mulesoft.org/releases/</url>
            <layout>default</layout>
        </repository>

任何有关如何处理此问题的想法都将受到赞赏。

最佳答案

首先,从命令行运行 mvn 总是一个好主意。它将问题与 IDE 隔离,并在 Maven 解决 Artifact 时显示日志。

此外,您还可以添加-X CLI option这会产生更多的调试输出,您应该会看到一些有用的错误:

mvn clean install -X

关于java - Spring MVC 项目上的“缺少 Artifact ”和 'Failed to read artifact descriptor' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59018515/

相关文章:

Spring Caching - 忽略键的参数

java - Spring MVC - 从未调用过的拦截器

Java servlet - HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET/POST

java - 解码 Java 字符/字符串

spring - Spring 如何使用ValidationUtils

java - 需要一种从 JAX RS 服务中的 List<Map<String,String> 生成 JSON 的方法。 jackson 2

maven - 仅使用外部库的 Shaded jar - Maven Shade 插件

maven - 如何使用 Eclipse 的 maven-jetty-plugin 设置 SSL?

java - 进度对话框没有响应

java - 可运行代码正在循环其操作