Maven 正在获取 Archiva 中最旧的快照 - 为什么?

标签 maven archiva

我有一个具有以下结构的 projectA-parent:

projectA-parent|
----------------|projectA
----------------|projectA-core
----------------|projectA-api

模块 projectA 简单地定义了对 core 和 api [1] 的依赖,所以我可以在其他需要 core 和 api 的项目中只定义对 projectA 的依赖。我将项目部署到 Archiva (1.4-M2),部署到 SNAPSHOT 存储库。

我有另一个项目 X,我在其中定义了对项目 A 的依赖项,今天下午目标“mvn compile”开始失败,出现 Unresolved 编译问题。在对该项目进行“mvn dependency:tree”调查后,我发现在 projectA 下,对 projectA-core 的依赖被声明为“runtime”。虽然今天早上是这样,但我执行了几次 mvn 安装,因为范围是“编译”(请参阅​​ [1],其中列出了最新的 pom 定义)。

查看存档,我看到该项目的以下文件(缩写):

projectA-0.0.7-20120712.084920-61-tests.jar
projectA-0.0.7-20120712.084920-61-tests.jar.md5
projectA-0.0.7-20120712.084920-61-tests.jar.sha1
projectA-0.0.7-20120712.084920-61.jar
projectA-0.0.7-20120712.084920-61.jar.md5
projectA-0.0.7-20120712.084920-61.jar.sha1
projectA-0.0.7-20120712.084920-61.pom
projectA-0.0.7-20120712.084920-61.pom.md5
projectA-0.0.7-20120712.084920-61.pom.sha1
projectA-0.0.7-20120712.172412-87-tests.jar
projectA-0.0.7-20120712.172412-87-tests.jar.md5
projectA-0.0.7-20120712.172412-87-tests.jar.sha1
projectA-0.0.7-20120712.172412-87.pom
projectA-0.0.7-20120712.172412-87.pom.md5
projectA-0.0.7-20120712.172412-87.pom.sha1
projectA-0.0.7-20120712.180733-90.pom
projectA-0.0.7-20120712.180733-90.pom.md5
projectA-0.0.7-20120712.180733-90.pom.sha1

这是有趣的部分:如果我从我的本地 .m2/存储库中删除 projectA,即使我“mvn compile -U”我也会得到 08:49 的版本,而不是 18:07 的版本! 这意味着 ma​​ven 或 archiva 正在解析当天的第一个 sNAPSHOT 而不是最近的一个。 这是为什么,如何解决这个问题?

[1]:

<dependencies>
        <dependency>
            <groupId>com.projectA</groupId>
            <artifactId>projectA-api</artifactId>
            <version>${project.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.projectA</groupId>
            <artifactId>projectA-core</artifactId>
            <version>${project.version}</version>
            <type>jar</type>
            <scope>runtime</scope>
        </dependency>
</dependencies>

最佳答案

您的项目 A 的包装是什么(“jar”或“pom”)。它只存在一个' jar ' 08:49 的人工产物。

我想您将包装更改为“pom” '.因此,如果您将库声明为其他项目中的依赖项,则必须设置 <type>pom</type> .

关于Maven 正在获取 Archiva 中最旧的快照 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11459097/

相关文章:

maven - 如何强制对 Archiva 内部存储库进行身份验证?

java - 为什么使用 maven shade 插件重定位不起作用?

java - 在另一个maven项目中使用测试类

maven-2 - Maven 校验和失败

ivy - 将文件库添加到 Ivy

spring-boot - 在Apache Archiva中使用Gradle6.3和Spring Boot 2.2..6.Release的RSocket依赖关系问题

ivy - 除了 Nexus、Artifactory 和 Archiva 之外,还有其他 Java 存储库管理器吗?

java - maven 缺少 Artifact

java - 通过从命令行安装 tomcat 7 maven 插件来下载 spring petclinic

java - mvn install in maven 到底做了什么