带有buildnumber的maven问题:hgchangeset属性没有传播给子节点

时间:2013-09-03 06:23:33

标签: maven buildnumber-maven-plugin

我有一个多模块项目,该项目使用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。

提前致谢,

0 个答案:

没有答案