我正在开发一个相当大的项目结构,我们最近迁移到了maven。目前的结构如下:
父项目
每个组件都有自己的项目版本。如何为每个构建工件自动创建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
我知道资源过滤,但我无法管理如何包含每个依赖项的版本。
答案 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将上述输出文件固化为您想要的格式。