Автоматическое увеличение номера сборки в Java-проекте

Я использую систему управления версиями, представленную abbuild, где a - общая версия (будет 0 для прототипов, альфа и бета-версий, 1 для основной версии), b - эталонная версия (в соответствии с представляющие стадии прото, альфа, бета), и сборка представляет собой буквально количество раз, когда проект был скомпилирован.

На данный момент у меня есть приложение, которое читается из текстового файла, увеличивается число и сохраняется в текстовом файле, когда приложение запускается с установленным флагом отладки.

Я ищу более "правильный" способ сделать это с помощью Java и Netbeans. Есть ли способ, которым я могу вставлять номер сборки в процесс сборки где-нибудь? желательно сохранить номер в исходном файле, который поставляется вместе с проектом, вместо того, чтобы полагаться на существование ближайшего файла.

Ответы

Ответ 1

Есть несколько популярных плагинов Maven, которые выполняют этот подвиг:

Плагин релиза Maven из проекта Apache Maven немного overkill для простого обновления номера версии. Поэтому использовать последний плагин для создания номера версии (в виде MAJOR.MINOR.BUILD, например 3.1.4, где 4 auto-incremented) следующим образом:

  • Откройте файл проекта pom.xml.
  • Включите плагин в секции build (после раздела dependencies):
  <scm>
    <connection>scm:svn:http://127.0.0.1/dummy</connection>
    <developerConnection>scm:svn:https://127.0.0.1/dummy</developerConnection>
    <tag>HEAD</tag>
    <url>http://127.0.0.1/dummy</url>
  </scm>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.4</version>
        <executions>
          <execution>
            <id>buildnumber</id>
            <phase>validate</phase>
            <goals>
              <goal>create</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <format>{0,number}</format>
          <items>
            <item>buildNumber</item>
          </items>                    
          <doCheck>false</doCheck>
          <doUpdate>false</doUpdate>
          <revisionOnScmFailure>unknownbuild</revisionOnScmFailure>   
        </configuration>
      </plugin>    
    </plugins>
    <finalName>${project.artifactId}-${project.version}.${buildNumber}</finalName>
  </build>
  1. Убедитесь, что pom.xml определяет основную и второстепенную версию в элементе версии в верхней части файла. Например:
<version>3.1</version>
  1. Сохраните файл pom.xml.
  2. Восстановить проект.

Номер версии должен увеличиться.


Для плагина требуется настроенный элемент репозитория управления исходным кодом (<scm>). Если вам не нужен номер регистрации репозитория, вместо этого используйте фиктивный scm. Это можно использовать для включения номера версии из репозитория, который является упражнением для читателя.

Ответ 2

Вы можете использовать git commit count текущей ветки как номер сборки. Используйте эту командную строку, чтобы получить счетчик транзакций: git rev-list HEAD --count.

Интеграция с инструментами построения будет довольно простой. Если вы используете Gradle, вы можете использовать этот плагин: https://github.com/rockerhieu/Versionberg/