[英]Why does Maven want to download a module from a remote repository
在我的pom.xml中给出以下模块
<modules>
<module>core</module>
<module>middle-layer</module>
<module>top-layer</module>
<modules>
顶层取决于中间层,而中间层取决于核心。
当我运行clean install
,它将成功构建并安装核心层和中间层,而不是顶层。 它尝试从远程存储库下载中间层,而不是使用本地存储库中新构建的中间层。
我确实在pom.xml中指定了一个自定义的远程存储库:
<repositories>
<repository>
<id>custom</id>
<url>http://someaddress/maven2/</url>
<snapshots>
<updatePolicy>never</updatePolicy>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</repository>
</repositories>
为什么要从远程存储库中获取中间层?
当前,一切都处于SNAPSHOT模式。
中间层依赖性:
<dependencies>
<dependency>
<groupId>mygroup</groupId>
<artifactId>core</artifactId>
<version>2.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
顶层依赖性:
<dependencies>
<dependency>
<groupId>mygroup</groupId>
<artifactId>middle-layer</artifactId>
<version>2.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
它们都是父版本的固有版本(当前版本为2.0.1-SNAPSHOT),我从父pom调用install。
Maven经常打印有关下载实际上不是下载的内容的消息。 它正在考虑是否存在比本地上一个快照更高的远程快照。 这就是为什么上传快照通常不是一个好主意的原因。
我找到了答案。
这是键盘和椅子之间的典型问题。
从历史上看,中间层实际上是WAR,而不是JAR,也就是说:它包括一些我顶层中需要的类。 (当然,它并不是真正的中间层)。 因此,顶层搜索middle-layer.jar并找不到它(因为它是一个WAR)。
因此,我必须重构一些东西,以便将我需要的东西从中间层转移到新的JAR库中,并使中间层和顶层都依赖于此。
抱歉浪费您的时间。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.