1 parsing build version helper maven
我有一个项目,我需要在构建清单文件时分解版本号并访问它的组件。在做了一些搜索之后,我找到了 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>
Run Code Online (Sandbox Code Playgroud)
此时的项目版本是 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>
Run Code Online (Sandbox Code Playgroud)
构建后我得到了这个。
<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>
Run Code Online (Sandbox Code Playgroud)
值标签实际上是一个 XML 标签,清单文件中有一个结束值标签,我不得不删除它们,因为它们弄乱了显示。
所以增量版本似乎是正确的,虽然我不是很自信,因为主要版本不正确,它没有找到次要版本,并且限定符作为整个版本号返回,而不仅仅是 SNAPSHOT 部分我曾预料到。我可以看到构建号为零的地方是正确的,因为我们没有 Maven 认为的构建号。
关于为什么版本号似乎没有解析的任何想法?我是否错误地实现了这个插件?
谢谢史蒂夫
更改{$parsedVersion.minorVersion}
为${parsedVersion.minorVersion}
你什么时候检查属性值?确保您validate
在示例中的阶段之后执行此操作,或者如果您希望在同一阶段执行此操作,请确保在build-helper-maven-plugin
您用于检查属性值的插件之前发生。如果我有这个:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>Major: ${parsedVersion.majorVersion}</echo>
<echo>Minor: ${parsedVersion.minorVersion}</echo>
<echo>Incremental: ${parsedVersion.incrementalVersion}</echo>
<echo>Qualifier: ${parsedVersion.qualifier}</echo>
<echo>BuildNumber: ${parsedVersion.buildNumber}</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
之后build-helper-maven-plugin
,我在以下输出中看到了这一点mvn validate
:
[INFO] --- build-helper-maven-plugin:1.7:parse-version (parse-version) @ so-example ---
[INFO]
[INFO] --- maven-antrun-plugin:1.1:run (default) @ so-example ---
[INFO] Executing tasks
[echo] Major: 1
[echo] Minor: 0
[echo] Incremental: 0
[echo] Qualifier: SNAPSHOT
[echo] BuildNumber: 0
anew@buddha:~/dev/so-example$ grep "<version>" pom.xml | head -1
<version>1.0.0-SNAPSHOT</version>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9546 次 |
最近记录: |