我正在尝试使用
buildnumber
maven 插件根据 Git 提交/推送自动生成项目版本。在我配置buildnumber
插件和maven发布插件之后,无论我提交或推送多少,它仍然在null object or invalid expression
之后的mvn help:evaluate
中返回${project.version}
。看来我可能没有正确配置 POM。
这里是POM(它太大了,所以我删除了一些无用的。):
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.pkg</groupId>
<artifactId>Main</artifactId>
<version>${buildNumber}</version>
<profiles>
<profile>
<id>buildnumber</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>get-build-number</id>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<format>{0,number}</format>
<items>
<item>buildNumber</item>
</items>
<doCheck>true</doCheck>
<doUpdate>true</doUpdate>
<revisionOnScmFailure>unknownbuild</revisionOnScmFailure>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>maven release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.0-M7</version>
<executions>
<execution>
<id>prepare-release</id>
<goals>
<goal>prepare</goal>
</goals>
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
<!--...-->
</dependencies>
<properties>
<maven.compiler.source>19</maven.compiler.source>
<maven.compiler.target>19</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
我在 MacOS 上使用 IntelliJ Idea IDE。
我尝试运行
mvn clean install
并多次推送该项目,但它似乎并没有解决它。