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