【问题标题】:Sharing variables with child maven projects与子 Maven 项目共享变量
【发布时间】:2014-07-28 15:12:51
【问题描述】:

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

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

我希望将此信息放入清单 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 以便它获取父级创建的变量?

【问题讨论】:

  • 试试${env.VERSION},虽然我不太确定这会奏效。您应该通过传入 MAVEN_OPTS=-DVERSION=$VERSION -DBUILD_NUMBER=$BUILD_NUMBER 将这些作为参数传递给 JVM。

标签: maven jar manifest.mf


【解决方案1】:

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

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

任何添加了此部分的模块 pom 都正确填充了清单......以及 maven-jar-plugin sn-p。看起来两者都需要才能访问父 pom.xml 设置的值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 2019-10-07
    相关资源
    最近更新 更多