2

我正在处理一种情况,我们在 POM 中使用 LATEST 和 RELEASE 关键字来处理某个依赖项(依赖项和项目都归我们所有,所以我们控制什么是 LATEST 和 RELEASE ......我们只支持一次一个版本)。使用这些关键字使我们能够最大限度地减少发布后所需的维护。

在构建过程中有一个步骤必须从解压缩的依赖项中复制 DLL,但由于我们没有指定特定版本,因此我们将解压缩依赖项的版本号硬编码,并且必须在每次发布后对其进行更新。有没有办法在运行时从 Maven 属性获取此依赖项的版本?

maven-dependency-plugin(http://maven.apache.org/plugins/maven-dependency-plugin/index.html)的属性目标获取工件在本地存储库中的位置(这不是我的)米找)。depends-maven-plugin(显示在这里:http ://team.ops4j.org/wiki/display/paxexam/Pax+Exam+-+Tutorial+1 )可以生成一个包含各种依赖项及其版本的文件,但使用这将需要一个进程读取文件并利用该信息。我想知道是否有更多“Maven 方式”,例如访问依赖版本的属性。

编辑:为澄清起见,我们需要版本号,以便我们可以进入解压缩依赖项的目录以复制文件。

4

1 回答 1

0

我不确定你对'maven way'的意思,但在查看了你已经提到的相同插件后,我做了这样的事情:

  <build>
<plugins>
  <plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <version>1.5</version>
    <executions>
      <execution>
        <phase>initialize</phase>
        <goals>
          <goal>execute</goal>
        </goals>
        <configuration>
          <source>                                                                                                                                                                                                                                                   
            project.properties.put('firstdependencyinthepom', project.dependencies[0]['version'])                                                                                                                                                                              
            project.properties.put('seconddependencyinthepom', project.dependencies[1]['version'])                                                                                                                                                                            
          </source>
        </configuration>
      </execution>
    </executions>
  </plugin>

然后我可以分别用 ${firstdependencyinthepom} 和 ${seconddependencyinthepom} 引用这些依赖项的版本。

于 2014-09-29T13:17:41.327 回答