【问题标题】:how do I stop maven version ranges from using snapshots如何阻止 Maven 版本范围使用快照
【发布时间】:2010-12-10 08:48:26
【问题描述】:

我在我的 maven POM 中使用版本范围:

<version>[3.0.0,)</version>

对于这个特定的工件,repo 中有一个 3.0.0 版本和一个 3.0.1-SNAPSHOT。当我尝试发布时,它会因为使用 SNAPSHOT 版本而失败。

我试图通过编辑我的设置文件以禁止使用快照来解决这个问题,但它仍然失败:

<repositories>
    <repository>
        <id>EFX Nexus Repository</id>
        <url>myUrl</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

谢谢

【问题讨论】:

标签: maven maven-2


【解决方案1】:

这是基本的 Maven 问题。

当你在单行中触发多个命令时..say mvn versions:resolve-ranges clean install...它会在发布构建时获取 SNAPSHOT。

尝试单独执行命令。

首先运行 mvn versions:resolve-ranges 然后 clen install

【讨论】:

    【解决方案2】:

    我认为在您禁用 &lt;repositories&gt; 中的快照之前,该工件的 SNAPSHOT 版本已到达您的本地 maven 存储库(在 ~/.m2 中)。现在 Maven 无法下载快照,但它仍然可以从本地存储中使用它们。

    清理您的~/.m2 目录并重试。

    【讨论】:

    • 感谢您的回答,但我已经从我的仓库中删除了所有本地内容。
    • @Roaders 和 Maven 继续从存储库下载 SNAPSHOT 版本(外国的,不是本地的)??
    • 是的!这就是我觉得奇怪的地方!
    • 您是否在 Maven 输出中看到类似“正在下载 myUrl/path/artifact-3.0.1-SNAPSHOT.*”的内容?也许它正在从不同的存储库中获取工件,然后您在 settings.xml 中进行了调整。如果它确实从您禁用 SNAPSHOT 的 repo 下载了不正确的版本,您应该提交一个 Maven 错误,因为这不是正确的功能,您不会在这里找到答案。另外,您是否尝试过使用 Maven 3 或尝试升级您的 Maven 2 版本?如果这是一个问题,也许这已经解决了。
    猜你喜欢
    • 1970-01-01
    • 2010-10-20
    • 2013-01-04
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多