与子maven项目共享变量



我有一个父pom.xml,它构建了一系列模块。作为父pom.xml的一部分,我读取了一个配置,并将一些变量放入构建环境中:

 BUILD_DATE=2014/07/24 15:37:06
 BUILD_NUMBER=78
 VERSION=GGY1.6

我希望将这些信息放入manifest jar文件中。我的操作如下:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <finalName>atf</finalName>
                <archive>
                    <manifestEntries>
                        <Built-Date>${maven.build.timestamp}</Built-Date>
                        <Version>${VERSION}B${BUILD_NUMBER}</Version>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>

我不确定这应该放在pom.xml的哪个部分。我把它放在构建阶段,在某些模块中,这工作得很好,但在其他模块中,它出现在清单中:

Created-By: Apache Maven 3.0.5
Built-Date: 28/07/2014-16:00
Version: ${VERSION}B${BUILD_NUMBER}
Archiver-Version: Plexus Archiver

是否有一个特定的地方在pom.xml我需要把maven-jar-plugin为了让它捡起由父创建的变量?

我认为模块的pom.xml文件中缺失的部分是:

        <plugin><groupId>org.codehaus.mojo</groupId>
            <artifactId>properties-maven-plugin</artifactId>
        </plugin>

任何添加了这部分的模块都正确地填充了清单…以及maven-jar-plugin片段。为了访问父元素pom.xml

设置的值,似乎需要这两个元素。

最新更新