Maven:无法读取工件描述符
我希望有人能帮我解决一个我正在挣扎的问题。
当我尝试从terminal上构build我的项目时,出现以下错误:
Failed to read artifact descriptor for com.morrislgn.merchandising.common:test-data-utils:jar:0.3b-SNAPSHOT: Could not find artifact com.morrislgn.merchandising:merchandising:pom:0.3b-SNAPSHOT
common.test-data-utils
jar是由一个单独的项目创build的,并且在这个项目与另一个项目之间共享(另一个项目不会构build,但是这是另一个问题)。
我能够build立com.morrislgn.merchandising.common:test-data-utils
没有问题,我可以看到它在我的机器上.m2
本地存储库中的条目。 我也在Eclipse中重新编制了我的存储库。
我的项目POM有这样的条目:
<dependency> <groupId>com.morrislgn.merchandising.common</groupId> <artifactId>test-data-utils</artifactId> <version>0.3b-SNAPSHOT</version> </dependency>
这对我来说似乎是正确的 – POM在Eclipse中查看时不会报告任何错误。
有人能告诉我我在这里失踪或做错了吗?
您可以随时尝试mvn -U clean install
-U
强制检查远程存储库上的更新版本和快照
如果您有一些引用父POM的子项目,并且没有从父POM目录(从父目录运行mvn install
) mvn install
,则可能会出现此问题。 其中一个子项目可能依赖于一个兄弟项目,当它读取兄弟的pom时,它将会失败,并出现问题中提到的错误,除非您至less从父目录安装了一次。
将项目移动到新计算机时,我遇到了这个问题。 我习惯于从子项目运行命令,并没有在父项上运行安装。
如果你使用的是eclipse, 右键单击project – > properties – > Maven ,并确保没有单击“ parsing来自工作区项目的依赖关系 ”。
希望这可以帮助。
我知道我谈话很迟,但是我也有这个问题。 我认为这个问题是我公司的防火墙。 我的解决scheme是从networking拔出,连接到我们的开放无线,然后通过Eclipse强制更新。 这解决了一切。
我解决了这个问题,通过删除存储库文件夹,这个错误显示除了.jar和.pom文件之外的所有东西。
如果你正在使用Eclipse, 右键单击你的项目 – > Maven – > 更新项目 。 它将打开“更新Maven项目”对话框。
在该对话框中,选中“ 强制更新快照/版本”checkbox并单击“ 确定” 。 (请参考下图)
这对我有用!
我有同样的问题在Eclipse的Maven构build命令行工作得很好,但尝试这一点
- 进入.m2 / repository并擦除关联的目录
- 在eclipse中运行更新maven依赖关系
错误消失….为什么我的mvn命令行工作与这些目录和日食.m2eclipse不能,我不知道,它有点烂。 我的项目现在再次在eclipse中工作。
“无法读取工件描述符”问题通常表明在Maven存储库中依赖的pom文件存在问题。 我build议你仔细检查一下,如果这个pom文件的名字和maven预期的名字是一样的,并且检查这个pom文件的内容是否有效。
与IntelliJ IDEA和下面的工作有相同的问题。
- 转到
File
- select
Settings
- select
Build, Execution, Deployments
- 从下拉菜单中select
Build Tools
- 从下拉菜单中select
Maven
- 勾选
Always update snapshots
checkbox
我有一个项目
A/ |--a1 |--a2
现在我们组织还有另外一个项目
B/ |--b1 |--b2 |--b3
(每个模块a1,b1等和父项目A,B都有自己的pom.xml,按照父,子标准规范)
这两个项目在我的本地eclipse(从SVN)签出。 我正在积极研究A.
我开始知道B中有一个很好的通用function(b4),我需要使用它。
B/ |--b1 |--b2 |--b3 |--b4 (NEW)
b4的开发者已经将这个b4模块作为我们组织库中的工件进行部署。 我包括依赖到我的模块的POM,即A2的POM.XML。 Eclipse从repo下载了reuqired工件,我可以导入其中的类。
现在问题开始…我需要检查b4的源代码为了某种目的,因为我已经在我的本地eclipse检查了我从SVN更新它并检出了模块b4。 我还运行了模块b4的pom.xml,包括clean,package等目标。一段时间,当我完成我的编码时,我需要创build一个模块a2的JAR。 我在a2的pom.xml和BAM上运行“包” 错误n为a2模块的错误..这些错误也不是非常人性化。 唯一的事情是在日志里确实有b4的名字。
解决scheme:在尝试了很多小时的解决scheme后,我在B的项目directoty(即../codebase/B)中从控制台运行“mvn -U clean install”。 由于B是父级,所以对于包括b4在内的所有模块运行clean install命令,并且运行成功。 在这之后,我跑了“mvn -U干净安装”为我的父项目是A.这个工作! a2模块得到编译,安装,(以后打包)成功。
这里重要的一点是如果b4在你的工作空间中,不仅要安装b4。 您将需要清理完整的B。阅读Zuill的答案后,我find了这个解决scheme
编辑:在这里再注意一点,如果我没有在本地环境中签出B项目,那么这个问题可能不会发生在我身上。 我倾向于认为这是因为我在本地工作空间检查了B。
你提到两个不同的com.morrislgn.merchandising.common
, com.morrislgn.merchandising.common
和com.johnlewis.jec.webpim.common
。 也许这是问题。
对我来说,它与设置里面的“User Setting.xml”有关
Window > preferences > Maven > User Settings > and then browsing to the user Settings inside the { maven unarchived directory / }/apache-maven-2.2.1/conf/settings.xml .
引用Maven错误“无法传输…”
find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;
没有任何运气更新通过日食。 不得不使用mvn clean install -U(解决了所有问题)。
我有同样的问题一段时间,尽pipe做mvn -U clean install
问题没有得到解决!
我终于通过删除整个.m2
文件夹解决了这个问题,然后重新启动我的IDE,问题就没有了!
所以有时候这个问题会因为你本地的maven仓库中的一些不兼容或者问题而上升。
我有一个类似的问题。 在我的情况下,我的.m2 / repositories文件夹中的testng版本已损坏,但是当我删除它并再次做了maven更新时,一切正常。
我在eclipse中遇到了这个问题, mvn -U clean install
不起作用,但是右键单击项目并selectMaven-> Update Project修复了它。
我刚开始使用STS Eclipse,第一次使用Maven。 我设置的项目已经有了自己的settings.xml。 如果是这种情况,您将需要在运行configuration中更新您的settings.xml文件。
-
右键单击pom.xml,然后单击“运行方式” – >“运行configuration…”
-
在那里它说“用户设置”点击文件button,并添加settings.xml。
-
我认为这是特定于您的项目,但我的“目标”设置为“干净安装”,我检查了“跳过testing”。
对我来说,它似乎实际上是依赖POM的一个问题。
我使用jitpack虚拟仓库解决了这个问题,可以根据他们的URL而不是他们自己的POM(这在我的情况下似乎是错误的)包含github仓库。
<repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository>
我通过更改maven setting.xml和repository来解决这个问题