使用每个依赖组件的版本号创建属性文件

时间:2014-01-16 11:30:39

标签: java maven maven-3

我正在开发一个相当大的项目结构,我们最近迁移到了maven。目前的结构如下:

父项目

  • 共享
  • core(依赖:“shared”)
  • webservice(dependency:“shared”,“core”)
  • webapp(依赖:“共享”)
  • 工具
    • gui client(依赖:“shared”)
    • 报告客户端(依赖:“共享”)
    • 监控客户端(依赖:“共享”,“核心”)
    • ...

每个组件都有自己的项目版本。如何为每个构建工件自动创建version.properties文件?属性文件需要包含包中包含的所有组件的所有版本号。

组件webservice的所需输出:

webservice.version=1.0-SNAPSHOT
shared.version=0.9
core.version=1.1

组件webapp的所需输出:

webapp.version=1.1
shared.version=0.9

我知道资源过滤,但我无法管理如何包含每个依赖项的版本。

1 个答案:

答案 0 :(得分:1)

依赖:list插件会让你接近。您可以将其设置为:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <version>2.8</version>
  <executions>
    <execution>
      <id>create-versions-file</id>
      <goals>
        <goal>list</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <includeGroupIds>org.yourgroup1,org.yourgroup2</includeGroupIds>
    <outputScope>false</outputScope>
    <outputFile>${project.build.directory}/versions.info</outputFile>
  </configuration>
</plugin>

结果输出为:

The following files have been resolved:
  org.yourgroup1:webservice:jar:1.0-SNAPSHOT
  org.yourgroup1:shared:jar:0.9
  org.yourgroup2:core:jar:1.1

现在显然这不是你想要的。要获得您想要的确切格式,您可以创建自己的插件(最好从依赖列表mojo的源代码开始)或使用maven-replacer-plugin将上述输出文件固化为您想要的格式。