Maven 更新pom以使用已发布的版本

Maven 更新pom以使用已发布的版本,maven,Maven,试图找到一种更新pom的方法,以使用已发布依赖项的最新版本,而不是快照 我们有一个组装项目,它组装了一个在开发期间使用快照依赖项部署的映像 但是现在我想更新依赖项以使用最新发布的依赖项。尝试使用版本:使用最新版本,但只影响pom中已发布的版本 有什么想法吗 编辑(出于安全原因,无法发布pom,但以下是一个示例) .... a、 不列颠哥伦比亚省 c-d-f 1.0.1-快照 战争 a、 不列颠哥伦比亚省 g-h-i 1.1.6-快照 战争 ... ... 鉴于组件a-b-c和g-h-i已经发

试图找到一种更新pom的方法,以使用已发布依赖项的最新版本,而不是快照

我们有一个组装项目,它组装了一个在开发期间使用快照依赖项部署的映像

但是现在我想更新依赖项以使用最新发布的依赖项。尝试使用版本:使用最新版本,但只影响pom中已发布的版本

有什么想法吗

编辑(出于安全原因,无法发布pom,但以下是一个示例)


....
a、 不列颠哥伦比亚省
c-d-f
1.0.1-快照
战争
a、 不列颠哥伦比亚省
g-h-i
1.1.6-快照
战争
...
...
鉴于组件a-b-c和g-h-i已经发布了版本1.0.1和1.1.6,我想用这些版本号替换它们在本pom中的版本。基本上删除pom中的所有快照依赖项

编辑
我应该补充的是,这将是一个自动化的过程,人与人之间的交互最少。出于某些原因,我只能获取版本:如果版本已经处于发布状态,则更新属性才能工作。如果我有一个快照版本0.0.1-snapshot,并希望将其更新为0.0.1,则不会发生这种情况,并且我已验证该版本是否存在。版本也一样:使用最新版本,而版本:使用版本根本不起任何作用。

我在这里看到两种方法:

  • 您可以在maven pom中创建多个配置文件。最好的方法是创建一个“快照”配置文件和一个“发布”配置文件。此处描述:
  • 您可以使用maven pom properties为依赖项版本定义变量。请看这里:

  • 希望有帮助

    您可以在pom.xml中使用maven属性,例如:

    <properties>
        <c-d-f.version>1.0.1-SNAPSHOT</c-d-f.version>
        <g-h-i.version>1.1.6-SNAPSHOT</g-h-i.version>
    </properties>
    
    
    <dependencies>
            <dependency>
                <groupId>a.b.c</groupId>
                <artifactId>c-d-f</artifactId>
                <version>${c-d-f.version}</version>
                <type>war</type>
            </dependency>
            <dependency>
                <groupId>a.b.c</groupId>
                <artifactId>g-h-i</artifactId>
                <version>${g-h-i.version}</version>
                <type>war</type>
            </dependency>
            ...
    </dependencies>
    
    
    1.0.1-快照
    1.1.6-快照
    a、 不列颠哥伦比亚省
    
    查看更多选项。是的,该版本需要存在于回购协议中,否则将失败。顺便问一下,您是否使用了括号,例如-Dproperties=[0.0.1]?阅读我发送给您的链接后,您将看到此命令的输入是一个范围,因此必须使用括号来指定唯一的版本。

    您可以发布pom.xml吗?但我不太明白会发生什么?您想要的是在pom.xml中更改快照发布的依赖项?如果是这样,为什么不能手动执行呢?可能是
    versions:使用releases
    您想要什么?描述:将任何快照版本替换为相应的发布版本(如果已发布)@jne如果你在这里找到一个有帮助的答案,你可以标记为“已接受”…这正是我正在寻找的东西,但出于某种原因,它总是采用最新的快照版本。我甚至尝试使用allowSnapshots=false显式表示,但无法将快照更改为发布。你知道为什么吗?是否存在bug或其他问题?我认为如果你想从快照更改为发布版,最好的方法是使用maven-release-plugin。maven-release-plugin在属性部分有效吗?是的,它知道更新相关的道具。
    <properties>
        <c-d-f.version>1.0.1-SNAPSHOT</c-d-f.version>
        <g-h-i.version>1.1.6-SNAPSHOT</g-h-i.version>
    </properties>
    
    
    <dependencies>
            <dependency>
                <groupId>a.b.c</groupId>
                <artifactId>c-d-f</artifactId>
                <version>${c-d-f.version}</version>
                <type>war</type>
            </dependency>
            <dependency>
                <groupId>a.b.c</groupId>
                <artifactId>g-h-i</artifactId>
                <version>${g-h-i.version}</version>
                <type>war</type>
            </dependency>
            ...
    </dependencies>