<名称>的 POM 无效,传递依赖项(如果有)将不可用

2022-08-31 19:52:17

这个问题已经过时了,不再相关。此后,我已转到Gradle进行项目构建,并且无法再验证答案是否有效。

我在Maven上遇到了一些问题。让我先描述一下我的项目设置:

Framework
|  -- Apache Commons Math 3.0
|  -- Bouncy Castle 1.5
|  -- etc.. (lots more)
|________
|        Client
|        | -- GUI libraries
|        | -- etc.
|
|________
         Server
         | -- Server Libraries
         | -- etc.

因此,从本质上讲,我有一个包含大多数依赖项的框架,然后是两个项目,“服务器”和“客户端”,它们包含自己的框架,但框架也作为依赖项(作为框架的模块)。我将框架项目安装到我的本地存储库中,我的两个项目都可以看到框架本机代码(也就是我自己的逻辑)。但是,他们似乎无法使用框架项目的任何依赖项。当尝试构建任何一个“子”项目时,我得到这个:

Invalid POM for de.r2soft.empires.framework:Framework:jar:Alpha-1.2, 
transitive dependencies (if any) will not be available, 
enable debug logging for more details 

我试图找到这背后的原因(或者更好的解决方案),但没有找到任何可以解决我的问题的东西。希望这里有人可以帮忙。我的 maven 版本似乎是 3.2.1(反正 -version 告诉我的就是这个版本)

以下是我的 framework-pom.xml 和 client-pom.xml on pastebin:

框架:http://pastebin.com/cceZECaT

客户:http://pastebin.com/1Cuxve5F

感谢您的帮助。


答案 1

其中一个原因是,当您依赖于父 pom 已过时的项目时。如果您更新父 pom 而不安装/部署它,通常会发生这种情况。

要查看是否属于这种情况,只需运行并搜索确切的错误。它会提到它错过了你知道在父 pom 中的东西,而不是在你依赖的工件中(例如 jar 版本)。mvn dependency:tree -X

修复非常简单:使用并重试安装父 pommvn install -N


答案 2

我遇到了类似的错误,在我的情况下,从本地存储库中删除所有相关工件是解决方法...


推荐