代码之家  ›  专栏  ›  技术社区  ›  Stephane Grenier

Maven自动快照更新

  •  29
  • Stephane Grenier  · 技术社区  · 14 年前

    <groupId>com.mine</groupId>
    <artifactId>coreJar</artifactId>
    <packaging>jar</packaging>
    <version>0.0.1-SNAPSHOT</version>
    

    然后在另一个项目中,我始终希望引用最新的快照:

    <dependencies> 
        <dependency>
            <groupId>com.mine</groupId>
            <artifactId>coreJar</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        ...
    <dependencies> 
    

    但是,我希望它总是捕获最新的快照版本,而不是0.0.1-SNAPSHOT。在过去,您可以使用最新版本,但由于合理的原因,该版本已被弃用。

    you can specify versions ,例如:

    [1.5,)
    

    “我永远无法用它来拍摄快照”-但“

    [0.0.1,)-SNAPSHOT // Doesn't work!
    

    7 回复  |  直到 14 年前
        1
  •  15
  •   Pascal Thivent    14 年前

    关于依赖关系范围和快照依赖关系的几句话(引用 Dependency Mediation and Conflict Resolution 设计文件):

    将快照版本合并到规范中

    因此,为了回答您的问题,使用具有依赖范围的快照的唯一方法是作为边界,并且您不会通过设计自动获得更高的快照版本(即 真正地 有道理)。

    就个人而言,我不喜欢使用依赖范围,因为我发现它会导致构建再现性问题,并使构建更加脆弱。我不推荐他们。

    以防万一,升级快照版本通常意味着您正在发布一些代码,而maven release插件为此提供了支持(请参阅 Updating POM Versions ).

        2
  •  44
  •   Greg Domjan    10 年前

    <repositories>
        <repository>
            <id>you-snapshots</id>
            <url>http://host/nexus/repos/snapshots</url>
            <snapshots>
                <updatePolicy>always</updatePolicy>
            </snapshots>
            <releases>
                <updatePolicy>always</updatePolicy>
            </releases>
        </repository>
    </repositories>
    

    p、 我总是在pom.xml中配置所有repo,因为我们使用多个CI服务器,并且很难配置所有这些服务器(我很懒…)

    博士 settings.xml updatePolicy The frequency for downloading updates - can be "always", "daily" (default), "interval:XXX" (in minutes) or "never" (only if it doesn't exist locally).

        3
  •  16
  •   Tim    14 年前

    使用

    mvn -U, --update-snapshots

    Forces a check for updated releases and snapshots on remote repository

        4
  •  8
  •   akokskis    9 年前

    Versions

    这是一个有用的工具,但我绝对希望看到一个与不推荐的最新选项等效的工具。我发现这种依赖性在持续集成场景中特别有用。

        5
  •  3
  •   Harish Mallikarjuna    10 年前

    使用mvn安装-U 你必须使用它来强制maven获取最新的快照

        6
  •  1
  •   Dimath    8 年前

    <version>[0.0-SNAPSHOT,)</version>
    
        7
  •  0
  •   Abdull David Silva Smith    12 年前

    如果要在Eclipse内部更新快照版本(使用m2e/m2eclipse时),请右键单击受影响的项目,然后选择“Maven”->更新项目…->“确定”(所选项目导致问题)。