版本maven插件-不';t使用更新的属性生成。

版本maven插件-不';t使用更新的属性生成。,maven,Maven,我有一个具有此属性的pom.xml,用于我的项目my.project <properties> <my.dependency.version>0.0.10</my.dependency.version> </properties> (我已经对清理工作发表了评论,稍后会有更多评论) 这将修改pom并将属性更新为0.0.11-SNAPSHOT。但是,当它构建和打包项目时,它仍然使用旧的依赖项 如果我再次运行它,它将

我有一个具有此属性的
pom.xml
,用于我的项目
my.project

    <properties> 
        <my.dependency.version>0.0.10</my.dependency.version> 
    </properties>
(我已经对清理工作发表了评论,稍后会有更多评论)

这将修改pom并将属性更新为
0.0.11-SNAPSHOT
。但是,当它构建和打包项目时,它仍然使用旧的依赖项

如果我再次运行它,它将使用新的依赖项。这对我来说意味着maven应该在改变属性之前阅读所有属性

有没有一种方法可以修改依赖项,然后在构建和打包中使用该依赖项

关于清理的注意:然后我想删除我所做的更改,因为我不希望版本控制看到更改

具有目标
更新属性
,该属性只能称为独立属性


如果您想在构建之前调用它,只需使用
versions:updateproperty-package
,而不是
package

显然是maven reactor中的依赖缓存。调用版本插件可能会激活它,并且不会使它失效,所以在循环中的下一个插件将停留在那里。试着先独立运行它。看起来版本插件不是设计成这样的。它对POM进行更改,但仅在Maven执行的最后一刻。我们必须将构建配置为运行Maven两次,一次是使用clean和versions插件调用,然后是实际构建。因此,我们还需要使POM文件可写。
    <profile>
        <id>use-latest</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>2.4</version>

                    <executions>
                        <execution>
                            <id>update-dependency-versions</id>
                            <phase>initialize</phase>
                            <goals>
                                <goal>update-property</goal>
                            </goals>
                            <configuration>
                                <allowSnapshots>true</allowSnapshots>
                                <property>my.dependency.version</property>
                            </configuration>
                        </execution>

                      <!--  <execution>
                            <id>clean-up</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>revert</goal>
                                 <goal>commit</goal>
                            </goals>
                        </execution> --> 
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>