Mor*_*lgn 243 java dependencies maven
我希望有人可以帮我解决我正在努力解决的问题.
当我尝试从终端构建我的项目时,我收到此错误:
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
Run Code Online (Sandbox Code Playgroud)
该common.test-data-utils
JAR是由一个单独的项目创建,这和其他项目之间共享(其他项目不建或者,但那是下来的问题).
我能够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>
Run Code Online (Sandbox Code Playgroud)
这似乎对我来说是正确的 - 当在Eclipse中查看时,POM不会报告任何错误.
有人可以告诉我这里缺少什么或做错了吗?
Gal*_*cha 169
你可以随时试试 mvn -U clean install
-U
强制检查远程存储库上的更新版本和快照.
bzu*_*ith 132
如果您有一些子项目引用父pom而您尚未从父pom目录安装(mvn install
从父目录运行),则可能会出现此问题.其中一个子项目可能依赖于兄弟项目,当它读取兄弟的pom时,除非您从父pom目录至少安装一次,否则它将因问题中提到的错误而失败.
我在将项目移动到新计算机时遇到了这个问题.我习惯于从子项目运行命令,并且没有在父项目上运行安装.
pri*_*ime 93
与IntelliJ IDEA相同的问题和后续工作.
File
Settings
Build, Execution, Deployments
Build Tools
从下拉列表中选择Maven
从下拉列表中选择Always update snapshots
复选框tha*_*_DG 35
如果您正在使用eclipse,请 右键单击项目 - > properties - > Maven ,并确保未单击" 从工作空间项目中解析依赖项 ".
希望这可以帮助.
Iam*_*yAV 31
如果您使用的是Eclipse,请右键单击Project - > Maven - > Update Project.它将打开"更新Maven项目"对话框.
在该对话框中,选中" 强制更新快照/版本"复选框,然后单击" 确定".(请参考下图)
这对我有用!
rrs*_*rrs 23
我知道我的谈话已经很晚了,但我也遇到了这个问题.我认为这个问题是我公司的防火墙.我的解决方案是拔掉网络连接,连接到我们的开放无线,然后通过Eclipse强制更新.这解决了一切.
Dea*_*ler 13
我在eclipse中遇到了同样的问题,maven构建命令行运行得很好但是试试这个
错误消失....为什么我的mvn命令行使用那些目录和eclipse .m2eclipse不能,我不知道它有点糟透了.我的项目现在再次在eclipse中工作.
通过 shell 在项目文件夹内导航并运行以下命令:
mvn -U clean install
Run Code Online (Sandbox Code Playgroud)
通常这应该已经解决了您的问题。
如果您看到这样的消息:
无法解析项目的依赖项:war:0.0.1-SNAPSHOT:无法在 com.sun.jersey:jersey-server:jar:1.9 收集依赖项
然后执行:
export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
Run Code Online (Sandbox Code Playgroud)
其次是:
mvn -U clean install
Run Code Online (Sandbox Code Playgroud)
再次最终更新您的依赖项。
然后执行 clean Maven 构建:
maven clean install
Run Code Online (Sandbox Code Playgroud)
您提到了两个不同的 groupIdcom.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 .
Run Code Online (Sandbox Code Playgroud)
我有一个项目
A/
|--a1
|--a2
Run Code Online (Sandbox Code Playgroud)
现在我们组织中还有另一个项目
B/
|--b1
|--b2
|--b3
Run Code Online (Sandbox Code Playgroud)
(每个模块a1,b1等以及父项目A,B都按照父子的标准Maven规则拥有自己的pom.xml)
这两个项目都在我的本地Eclipse(从SVN)中检出。我正在积极研究A。
我知道B中开发了一个很好的通用功能(b4),我需要使用它。
B/
|--b1
|--b2
|--b3
|--b4 (NEW)
Run Code Online (Sandbox Code Playgroud)
b4的开发人员已将此b4模块作为工件部署在我们组织的存储库中。我将对模块POM的依赖性包括在内,即a2的pom.xml。Eclipse从回购中下载了必需的工件,我可以将其中的类导入其中。
现在开始发行...出于某种目的,我需要检查b4的源代码,并且由于我已经在本地日食中检出了B,所以我从SVN更新了它并检出了模块b4。我还运行了b4模块的pom.xml,目标是clean,package等。一段时间后,当我完成编码后,我需要创建模块a2的JAR。我在a2的pom.xml和BAM上运行了“包”!错误n a2模块的错误。这些错误也不是非常用户友好。唯一的事情是日志中肯定有b4的名称。
解决方案:在尝试了许多小时的解决方案很多小时之后,我从B的项目直接性(即在../codebase/B中)从控制台运行了“ mvn -U clean install”。由于B是父级,因此对所有模块(包括b4)都运行了clean install命令,该命令成功运行。之后,我为我的父项目A运行了“ mvn -U clean install”。成功编译,安装(稍后打包)了a2模块。
这里重要的一点是,如果b4在您的工作空间中,则不仅要安装b4。您将需要全新安装B。请阅读Zuill的回答后,我提出了此解决方案
编辑:这里要注意的另一件事是,如果我没有在本地环境中签出B项目,那么对我来说可能不会发生此问题。我倾向于认为这是因为我在本地工作区中签出了B。
对我来说,它似乎实际上是依赖 POM 的问题。
我通过使用 jitpack 虚拟存储库解决了这个问题,您可以使用它包含基于 URL 而不是他们自己的 POM 的 github 存储库(这在我的情况下似乎是错误的)。
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
Run Code Online (Sandbox Code Playgroud)
小智 5
我有一段时间遇到同样的问题,尽管做了,但mvn -U clean install
问题没有得到解决!
我终于通过删除整个.m2
文件夹解决了这个问题,然后重新启动我的IDE,问题就消失了!
所以有时候问题会因为本地maven仓库的一些不兼容或者问题而出现。