Java 创建一个属性文件,其中包含每个从属组件的版本号

Java 创建一个属性文件,其中包含每个从属组件的版本号,java,maven,maven-3,Java,Maven,Maven 3,我正在进行一个相当大的项目结构,我们最近将其迁移到maven。目前的结构如下: 父项目 共享 核心(依赖关系:“共享”) webservice(依赖项:“共享”、“核心”) webapp(依赖项:“共享”) 工具 gui客户端(依赖项:“共享”) 报告客户端(依赖关系:“共享”) 监控客户端(依赖关系:“共享”、“核心”) 每个组件都有自己的项目版本。如何为每个构建工件自动创建version.properties文件?属性文件需要包含包中包含的所有组件的所有版本号 组件webservi

我正在进行一个相当大的项目结构,我们最近将其迁移到maven。目前的结构如下:

父项目

  • 共享
  • 核心(依赖关系:“共享”)
  • webservice(依赖项:“共享”、“核心”)
  • webapp(依赖项:“共享”)
  • 工具
    • gui客户端(依赖项:“共享”)
    • 报告客户端(依赖关系:“共享”)
    • 监控客户端(依赖关系:“共享”、“核心”)
每个组件都有自己的项目版本。如何为每个构建工件自动创建
version.properties
文件?属性文件需要包含包中包含的所有组件的所有版本号

组件webservice的所需输出:

webservice.version=1.0-SNAPSHOT shared.version=0.9 core.version=1.1 webservice.version=1.0-SNAPSHOT 共享。版本=0.9 core.version=1.1 组件webapp的所需输出:

webapp.version=1.1 shared.version=0.9 webapp.version=1.1 共享。版本=0.9
我知道资源筛选,但我无法管理如何包含每个依赖项的版本。

依赖项:列表插件将使您接近。您可以将其设置为:

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

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

这听起来是一个不错的开始。我试试看。谢谢
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