本地REPO中的Maven依赖项具有.lastUpdated扩展名

时间:2013-05-27 06:15:03

标签: maven

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

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

2 个答案:

答案 0 :(得分:14)

我找到了答案here

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

答案 1 :(得分:0)

当您引用Maven存储库下列出的工件但物理上不在那里时,也会发生这种情况。例如,以下Exasol artifact列在Maven Repository下,但有一个小注释说明了这一点:

  

注意:此工件位于Exasol存储库中   (https://maven.exasol.com/artifactory/exasol-releases/

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

<!-- 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>