16

pom当我尝试在本地存储库中安装 maven 项目时,我注意到jar文件具有.lastUpdated扩展名。由于这个问题,我无法构建依赖它的项目。

你能解释一下为什么会这样吗?

4

2 回答 2

16

我在这里找到了答案:

当无法下载工件时,Maven 3 将此结果缓存在“~/.m2/repo/.../.lastUpdated”文件中以供将来参考。对于“未找到”的情况,似乎可以使用 HTTP 代码更精细地重新尝试检索,而不仅仅是缓存故障。例如,对于任何 404,我同意,结果应该缓存失败并要求 -U 尝试再次检索它。但是,对于 400、500、501、502、503、301、302(今天 3xx 的 Maven 行为是什么?)我认为解析引擎应该尝试每次重新检索工件。使用这些错误代码,似乎更可能是配置问题或短暂的网络故障,而不是该存储库中缺少文件之一。然而,这个短暂的网络中断具有长期的缓存影响,因为该文件永远不会被再次尝试检索。

于 2013-05-27T06:41:56.750 回答
1

当您参考 Maven 存储库下列出但实际不存在的工件时,也会发生这种情况。例如,下面的Exasol 工件列在 Maven 存储库下,但有一个小注释说明:

注意:这个工件我 [s] 位于 Exasol 存储库 ( https://maven.exasol.com/artifactory/exasol-releases/ )

这意味着您需要单独添加另一个存储库(在本例中为 Exasol)作为pom.xml文件中的源:

<!-- add the dependency as mentioned in maven website -->
<dependencies>
    <dependency>
        <groupId>com.exasol</groupId>
        <artifactId>exasol-jdbc</artifactId>
        <version>6.2.1</version>
    </dependency>
</dependencies>

<!-- add the actual repository which unfortunately isn't mentioned in maven website -->
<repositories>
    <repository>
        <id>maven.exasol.com</id>
        <url>https://maven.exasol.com/artifactory/exasol-releases</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
于 2019-12-09T14:02:23.550 回答