我有一个多模块项目,该项目使用buildnumber:hgchangeset插件生成changeSet和changeSetDate属性,然后将其删除到每个模块的清单中,如下所示:
pom.xml(parent):
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>hgchangeset</goal>
</goals>
</execution>
</executions>
</plugin>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<ProjectVestion>${project.version}</ProjectVestion>
<ChangeSet>${changeSet}</ChangeSet>
<ChangeSetDate>${changeSetDate}</ChangeSetDate>
</manifestEntries>
</archive>
</configuration>
</plugin>
经过一些实验,我发现拥有buildnumber:每个模块的hgchangeset执行为整个构建时间贡献了大量时间,大概是因为每次需要获取变更集ID时它都会分叉hg.exe当地的回购。
然后我认为在buildnumber插件上将inherited属性设置为false是个好主意,以便只为父进程运行一次。不幸的是,这样做会导致changeSet和changeSetDate属性对子模块“不可见”。
我的问题是:是否可以以buildnumber:hgchangeset只运行一次的方式进行设置,但它设置的属性对于子模块是否可见?
我想或者我可以把东西写到属性文件中,然后让每个模块读回来,但这对我来说似乎不是惯用的Maven。
提前致谢,