"Failed to read artifact descriptor" 编译 maven-dependency-plugin 时:

"Failed to read artifact descriptor" when compiling maven-dependency-plugin:

我需要更改 Maven 依赖插件以满足我组织中的独特需求。

我已经从 http://maven.apache.org/plugins/maven-dependency-plugin/download.cgi

下载了资源

当我查看它的 pom 时,我看到它定义了这样一个父 pom:

<parent>
    <artifactId>maven-plugins</artifactId>
    <groupId>org.apache.maven.plugins</groupId>
    <version>27</version>
    <relativePath>../maven-plugins/pom.xml</relativePath>
  </parent>

这让我了解到这个项目不能独立构建,至少我的版本不能。

尝试 运行 mvn clean install 时出现以下错误:

Couldn't download artifact: Failed to read artifact descriptor for org.apache.maven:maven-model:jar:2.0.9

有趣的是,它确实存在于我的本地 .m2 存储库中。

如果我想对 maven 插件做出贡献或更改,我是否真的需要拥有整个环境,或者有没有办法独立构建它?

我正在使用 maven 3.0.4 和 Nexus。

当我尝试构建指定的插件时,我没有遇到任何问题。

您遇到的错误与 maven-model 插件有关,如果它存在于您的 .m2 目录中,您应该:

  1. 检查您 settings.xml 中指定的存储库是否是您的个人 .m2/repository 目录
  2. 如果是,只需清理您的 Maven 缓存并强制更新您的快照

父pom可以在maven central找到

因此,从 <parent> 中删除 <relativePath> 语句就足够了。有时空的 <relativePath /> 也有助于告诉 maven 从存储库解析 pom,而不是尝试通过项目中的相对路径找到它。

如果父级不在 Maven 存储库中,您要么将它放在那里 - 或者您需要在更高级别上检出版本控制项目,以便路径实际匹配本地结构。