Parsing 生成帮助程序插件未分析项目版本

Parsing 生成帮助程序插件未分析项目版本,parsing,maven,build,version,helper,Parsing,Maven,Build,Version,Helper,我有一个项目,需要在构建清单文件时分解版本号并访问其组件。在做了一些搜索之后,我找到了构建助手maven插件,并认为我的问题已经解决了。我将插件添加到主POM中,如下所示 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.7</

我有一个项目,需要在构建清单文件时分解版本号并访问其组件。在做了一些搜索之后,我找到了构建助手maven插件,并认为我的问题已经解决了。我将插件添加到主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标记,在清单文件中有一个结束值标记,我不得不删除它们,因为它们扰乱了显示

因此,增量版本似乎是正确的,尽管我不太确信主版本不正确,但它没有发现次版本,并且限定符作为整个版本号返回,而不仅仅是我所期望的快照片段。我可以看出构建编号为零的地方是正确的,因为我们没有Maven认为的构建编号

你知道为什么版本号没有被解析吗?我是否错误地实现了这个插件

谢谢 steve

将{$parsedVersion.minorVersion}更改为${parsedVersion.minorVersion}

您什么时候检查属性值?确保在示例中的验证阶段之后执行此操作,或者如果希望在同一阶段执行此操作,请确保build helper maven插件出现在用于检查属性值的插件之前。如果我有这个:

        <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>
将{$parsedVersion.minorVersion}更改为${parsedVersion.minorVersion}

您什么时候检查属性值?确保在示例中的验证阶段之后执行此操作,或者如果希望在同一阶段执行此操作,请确保build helper maven插件出现在用于检查属性值的插件之前。如果我有这个:

        <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>

这是为了抓住小版本的打字错误,我当时正看过去。现在我得到了所有部分的零,主要的,次要的,增量的,这是不对的,但我至少得到了一些值,所以这是一个步骤。我添加了一个关于检查属性值的注释,希望它有帮助。筛选或使用版本信息发生在组装步骤。这是一个启用了筛选的文件集。我已将该阶段显式添加到帮助器插件中,以便在验证时执行。我确实在我们的maven antrun插件部分添加了一些echo,只是为了查看输出,它们与实际清单文件中的相同,主要、次要和增量版本号以及版本号为零。限定符的完整版本完整版本是3.0.0-SNAPSHOT。只是想一想-您的父母pom的版本是0.0.0吗?否则听起来像是一个bug,或者是另一个插件在执行时以某种方式干扰了有效的pom。这是为了捕捉次要版本的打字错误,我已经看过去了。现在我得到了所有部分的零,主要的,次要的,增量的,这是不对的,但我至少得到了一些值,所以这是一个步骤。我添加了一个关于检查属性值的注释,希望它有帮助。筛选或使用版本信息发生在组装步骤。这是一个启用了筛选的文件集。我已将该阶段显式添加到帮助器插件中,以便在验证时执行。我确实在我们的maven antrun插件部分添加了一些echo,只是为了查看输出,它们与实际清单文件中的相同,主要、次要和增量版本号以及版本号为零。限定符的完整版本完整版本是3.0.0-SNAPSHOT。只是想一想-您的父母pom的版本是0.0.0吗?否则,它听起来像一个bug,或者另一个插件在执行时以某种方式干扰了有效的pom。