Статьи

Обновите номер версии AndroidManifest автоматически

Недавно мне нужно было автоматизировать обновление элемента versionName в файле AndroidManifest.xml. Это должно было быть запечатлено по времени и обновлено с правильным номером версии при запуске сборки. Мы используем maven как часть сборки, несколько плагинов пригодятся. Мы хотим использовать номер версии POM, чтобы можно было использовать такие инструменты, как плагин maven-release-plugin или плагин версий maven. Когда они запускаются, новый номер версии должен отражаться во встроенных APK.

Следующая магия, добавленная к части сборки пом, справляется с этим.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<plugins>
   <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>build-helper-maven-plugin</artifactId>
      <version>1.8</version>
      <executions>
         <execution>
            <id>parse-version</id>
               <goals>
                  <goal>parse-version</goal>
               </goals>
               <phase>validate</phase>
          </execution>
       </executions>
    </plugin>
    <plugin>
       <groupId>com.google.code.maven-replacer-plugin</groupId>
       <artifactId>maven-replacer-plugin</artifactId>
       <version>1.4.1</version>
       <executions>
         <execution>
            <id>replace-version</id>
            <phase>validate</phase>
            <goals>
               <goal>replace</goal>
            </goals>
         </execution>
       </executions>
       <configuration>
          <file>AndroidManifest.xml</file>
          <replacements>
              <replacement>
                 <token>0.0.0</token>                                   <value>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${maven.build.timestamp}</value>
              </replacement>
          </replacements>
          <quiet>false</quiet>
       </configuration>
   </plugin>
</plugins>

Вы можете добавить это как часть профиля и включить его только тогда, когда вы создаете, скажем, Jenkins или когда вы делаете релиз. Ваш AndroidManifest.xml должен иметь значение versionName, равное 0.0.0, и когда сборка выполняется с включенным профилем, он заменит его версией pom, а также добавит отметку времени.