Java BuildNumber不是使用BuildNumber maven插件生成的

Java BuildNumber不是使用BuildNumber maven插件生成的,java,maven,Java,Maven,在我的父母pom中,我有 org.codehaus.mojo buildnumber maven插件 1.1 验证 创造 真的 真的 在子模块中,使用上述默认属性运行java主类:buildName和scmBranch: <build> <!-- plugins used by this POM and all inheriting POMs --> <pluginManagement> <plugins>

在我的父母pom中,我有


org.codehaus.mojo
buildnumber maven插件
1.1
验证
创造
真的
真的
在子模块中,使用上述默认属性运行java主类:buildNamescmBranch

<build>
    <!-- plugins used by this POM and all inheriting POMs -->
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.1</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <doCheck>true</doCheck>
                    <doUpdate>true</doUpdate>
                </configuration>
            </plugin>
            <!-- other plugins -->
        </plugins>
    </pluginManagement>
</build>

org.codehaus.mojo
execmaven插件
1.2.1
我的死刑
包裹
执行官
JAVA
-类路径
${MyMainClass}
测试-${scmBranch}-${buildNumber}
但是变量在我的主类中从未被替换/扩展。有什么想法吗

从文件中:

必需:false
类型:java.lang.String
表达式:${maven.buildNumber.buildNumberPropertyName}
默认值:buildNumber
您可以将buildNumber属性名称重命名为其他名称
属性名称(如果需要)。

据我所知,buildNumber是在父pom中包含buildNumber maven插件时提供的属性,您尚未定义标记。没有它,您的子模块就不会继承您定义的插件,它们仅由父pom使用。这是您需要添加到父pom中的内容:

<build>
    <!-- plugins used by this POM and all inheriting POMs -->
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.1</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <doCheck>true</doCheck>
                    <doUpdate>true</doUpdate>
                </configuration>
            </plugin>
            <!-- other plugins -->
        </plugins>
    </pluginManagement>
</build>

org.codehaus.mojo
buildnumber maven插件
1.1
验证
创造
真的
真的

现在,您的子模块可以访问buildnumber maven插件。

scmBranch和buildnumber的属性定义在哪里?你也可以粘贴这些代码吗?据我所知,它们是在你使用pluginDo时提供的,你在pom中定义了
块?这是buildnumber插件了解如何与源代码控制系统对话所必需的。另外,我建议您为
设置一个值,这样当出现问题时,您就可以很容易地看到错误的值,例如
不起作用。另外,你能粘贴maven的输出吗?build number插件应该记录一些关于它在被调用时正在做什么的信息。你能删除生命周期阶段的定义,使用插件的默认生命周期阶段并重新检查吗?你怎么称呼mvn的?mvn clean package?从生命周期中删除没有任何作用,是的,我使用mvn clean package构建了此方案,但它不起作用${buildNumber}未传播,保持为“null”。您好,您是否在孩子的插件中声明buildNumber maven插件?你只需要重新声明groupId和artifactId,其余的都是继承的。在拉取、重组、弄乱我的pom之后,我必须收回我以前的声明。您的示例非常好用,我现在很喜欢build.properties.great中所有子模块jar中的提交id!请随意编辑我的答案与任何缺失的信息。谢谢