'Missing artifact' 和 'Failed to read artifact descriptor' 错误 Spring MVC 项目
'Missing artifact' and 'Failed to read artifact descriptor' errors on Spring MVC project
我在 Spring MVC 项目中遇到多个 "missing artifact" 和 "failed to read artifact descriptor" 错误,例如:
Missing artifact com.google.guava:guava:jar:20.0
Failed to read artifact descriptor for com.brooksandrus:swfheader:jar:1.0
我想知道:
- 它们到底是什么意思
- 如何解决
我对这些错误的看法:
此外,我是 运行 公司防火墙后面的项目这一事实可能与 maven clean install
失败有关,并出现以下错误:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
实际上,这是通过在 cacerts 文件中安装每个必需的证书来解决的。
我已经尝试过的:
- 更新 Maven 项目,选中强制更新快照。
- 删除整个 .m2 文件夹,然后尝试更新 Maven。
- 按照 this SO solution 在 cacerts 文件中添加证书,然后重新运行前两个步骤。这实际上是我解决这个错误
unable to find valid certification path to requested target
的方法,尽管它对我提到的关于 'Missing artifact' 和 'Failed to read artifact descriptor'. 的主要问题没有帮助
None 这些方法对问题有任何影响。
另一个重要的事实是,除了所有这些错误之外,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>
任何有关如何处理此问题的想法都将受到赞赏。
我在工作中遇到了同样的问题。我的公司有不同的网络。其中之一非常严格,因此我无法从某些网站下载,即来自 Maven Central。我找到了一个对我有帮助的 post:
最好的方法是将工件直接手动下载到您的 .m2 文件夹中。
可以尝试的其他选项:
close your project and reopen it.
Are you behind a proxy?
You can configure the proxy settings in the global or user settings.
Try this? Window -> Preferences -> Maven. Do not automatically update dependencies from remote repositories option, then right-clicking on the project and selecting Maven-> Update Project.
首先,从命令行 运行 mvn
总是一个好主意。它将问题与您的 IDE 隔离开来,并在 maven 解析工件时显示日志。
此外,您可以添加 -X
CLI option,它会产生更多的调试输出,您应该会看到一些有用的错误:
mvn clean install -X
我在 Spring MVC 项目中遇到多个 "missing artifact" 和 "failed to read artifact descriptor" 错误,例如:
Missing artifact com.google.guava:guava:jar:20.0
Failed to read artifact descriptor for com.brooksandrus:swfheader:jar:1.0
我想知道:
- 它们到底是什么意思
- 如何解决
我对这些错误的看法:
此外,我是 运行 公司防火墙后面的项目这一事实可能与maven clean install
失败有关,并出现以下错误:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
实际上,这是通过在 cacerts 文件中安装每个必需的证书来解决的。
我已经尝试过的:
- 更新 Maven 项目,选中强制更新快照。
- 删除整个 .m2 文件夹,然后尝试更新 Maven。
- 按照 this SO solution 在 cacerts 文件中添加证书,然后重新运行前两个步骤。这实际上是我解决这个错误
unable to find valid certification path to requested target
的方法,尽管它对我提到的关于 'Missing artifact' 和 'Failed to read artifact descriptor'. 的主要问题没有帮助
None 这些方法对问题有任何影响。
另一个重要的事实是,除了所有这些错误之外,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>
任何有关如何处理此问题的想法都将受到赞赏。
我在工作中遇到了同样的问题。我的公司有不同的网络。其中之一非常严格,因此我无法从某些网站下载,即来自 Maven Central。我找到了一个对我有帮助的 post:
最好的方法是将工件直接手动下载到您的 .m2 文件夹中。
可以尝试的其他选项:
close your project and reopen it.
Are you behind a proxy?
You can configure the proxy settings in the global or user settings.Try this? Window -> Preferences -> Maven. Do not automatically update dependencies from remote repositories option, then right-clicking on the project and selecting Maven-> Update Project.
首先,从命令行 运行 mvn
总是一个好主意。它将问题与您的 IDE 隔离开来,并在 maven 解析工件时显示日志。
此外,您可以添加 -X
CLI option,它会产生更多的调试输出,您应该会看到一些有用的错误:
mvn clean install -X