我有一个项目,我需要在构建清单文件时分解版本号并访问它的组件。在做了一些搜索之后,我找到了 build-helper-maven-plugin 并认为我的问题已经解决了。我将插件添加到主 POM,如下所示。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>validate</phase>
<id>parse-version</id>
<goals>
<goal>parse-version</goal>
</goals>
<configuration>
<propertyPrefix>parsedVersion</propertyPrefix>
</configuration>
</execution>
</executions>
</plugin>
此时的项目版本是 3.0.0-SNAPSHOT。我想查看所有部分(尽管在最终版本中我可能不会全部使用它们)所以我将这些行添加到我的清单文件中。
<value name="majorVersion">${parsedVersion.majorVersion}</value>
<value name="minorVersion">{$parsedVersion.minorVersion}</value>
<value name="incrementalVersion">${parsedVersion.incrementalVersion}</value>
<value name="versionQualifier">${parsedVersion.qualifier}</value>
<value name="parsedBuildNumber">${parsedVersion.buildNumber}</value>
建成后我得到了这个。
<value name="majorVersion">0</value>
<value name="minorVersion">{$parsedVersion.minorVersion}</value>
<value name="incrementalVersion">0</value>
<value name="versionQualifier">3.00.0-SNAPSHOT</value>
<value name="parsedBuildNumber">0</value>
值标签实际上是一个 XML 标签,并且清单文件中有一个结束值标签,我不得不删除它们,因为它们弄乱了显示。
所以增量版本似乎是正确的,虽然我不是那么有信心,因为主要版本不正确,它没有找到次要版本,并且限定符作为整个版本号返回,而不仅仅是 SNAPSHOT 片段我曾预料到。我可以看到内部版本号为零的位置是正确的,因为我们没有 Maven 认为的内部版本号。
关于为什么版本号似乎没有被解析的任何想法?我是否错误地实现了这个插件?
谢谢史蒂夫