代码之家  ›  专栏  ›  技术社区  ›  James

Maven发布插件自动增量自定义格式版本

  •  2
  • James  · 技术社区  · 6 年前

    我希望能够在Maven发布插件中使用非交互模式自动增加Java项目的发布版本( mvn -B release:prepare )但是,我不想使用默认的Maven版本控制模式。

    我要使用的架构是 <major>.<minor>.<bugfix>-SNAPSHOT . 我确实在pom文件中做到了这一点,但是maven尝试如下增加它:

    1.0.0-SNAPSHOT
    1.0.1-SNAPSHOT
    1.0.2-SNAPSHOT
    ...
    

    然而,我希望能够控制这一点,虽然有时我确实有错误修复和上面的增量工作,但大多数时候我希望发布小版本,因此增量如下:

    1.0.0-SNAPSHOT
    1.1.0-SNAPSHOT
    1.2.0-SNAPSHOT
    ...
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   khmarbaise    6 年前

    你可以通过 build-helper-maven-plugin 这样地:

    mvn build-helper:parse-version versions:set \
       release:prepare \
          -DdevelopmentVersion =\${parsedVersion.majorVersion}.\${parsedVersion.nextMinorVersion}.0-SNAPSHOT \
       release:perform
    

    这将设置 1.1.0-SNAPSHOT 作为下一个开发版本..下次调用release plugin时,它将 1.1.0 从中自动递增 1.1.1-SNAPSHOT 如果你不喜欢用上面的电话…

        2
  •  0
  •   Martin Å pelina    6 年前

    “maven方式”是遵循maven规则,或者创建一个自定义插件。 马文打得很好,只要你想做你想做的事。 也许您的解决方案是只使用“1.1”大多数情况,如果您想执行错误修复版本,那么手动添加第三个数字。

    但是,如果您真的想与Maven抗争,有可能从其他插件中设置属性。例如:

    <profile>
      <id>customversionnumber</id>
      <build>
      <plugins>
    
          <plugin>
            <groupId>org.codehaus.gmaven</groupId>
            <artifactId>groovy-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>set-release-version</id>
                <phase>initialize</phase>
                <goals>
                    <goal>execute</goal>
                </goals>
                <configuration>
                  <source>
                      project.properties.setProperty("releaseVersion","1.3.0")
                      System.out.println("releaseVersion set to 1.3.0")
                  </source>
                </configuration>
              </execution>
            </executions>
          </plugin>
          </plugins>
    

    然后,您可以像这样调用发布插件 mvn -Pcustomversionnumber initialize release:prepare . 它将以“1.3.0”的形式发布,不管“version”标签中有什么。当然,我必须自己编码这个数字增量。