2017-07-19 85 views
0

我有一个pom.xml有这个属性,为我的项目my.project版本 - maven-plugin - 不用更新的属性构建。

<properties> 
     <my.dependency.version>0.0.10</my.dependency.version> 
    </properties> 

此版本号代表我正在开发的另一个依赖项的最新发布版本。

当我向my.dependency添加新更改时,我会构建它并将其安装到版本0.0.11-SNAPSHOT的本地存储库中。

然后,我需要重建my.project指向该依赖 - 即。将my.dependency.version更新为0.0.11-SNAPSHOT

我试着与versions-maven-plugin这样做如下:

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

(我注释掉清理现在 - 更晚)。

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

如果我再次运行它,它将使用新的依赖关系。这表明,在它改变它们之前,maven读取所有属性。

有没有办法可以修改依赖关系,然后在构建和打包中使用该依赖关系?

关于清理的注意事项:然后我想删除我所做的更改,因为我不想通过版本控制查看更改。

+0

显然是depencencies的缓存。调用版本插件可能会激活它,并且不会使其无效,因此在那里停留在循环中的下一个插件。先尝试单独运行它。 –

回答

0

versions-maven-plugin有目标update-property,这只是被称为独立。

如果你想构建之前调用它,只是在Maven反应堆使用versions:update-property package代替package