Secciones

Release version management en Android

La aplicación PomoTodo para Android que podéis encontrar en el market de android, tiene publicado su código fuente en google code como ya comenté en la entrada anterior. El proceso de construcción de PomoTodo está definido utilizando maven, lo cual me facilita considerablemente las tareas de construcción, publicación, firma, versionado, etc...

Todos aquellos acostumbrados a utilizar maven, sabeis que dentro del fichero pom.xml, se define la versión del proyecto en el tag . Normalmente, el formato de este tag versión esta formado por X.Y.Z, por ejemplo:
 <version>0.0.1</version>  

Con Maven Release Plugin podemos automatizar de forma simple el proceso de release, ya que cada vez que generamos una nueva versión, aumenta de forma automática el tag del pom.xml.

La plataforma Android, que utiliza de forma nativa ant como herramienta para gestionar la construcción de los proyectos, en cambio utilizar el fichero AndroidManifest.xml para gestionar las versiones. En concreto utiliza los tags y .

En mi caso, me interesa que cada vez que genero una nueva versión con Maven Release Plugin actualice además los valores del fichero AndroidManifest.xml para que no me tenga que preocupar de recordarme de actualizar, manualmente, estos valores, de forma que es necesario realizar los siguientes cambios:

En el fichero AndroidManifest.xml
     <?xml version="1.0" encoding="utf-8"?>  
     <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
          package="net.juancarlosfernandez.pomotodo"  
          android:versionCode="${parsedVersion.majorVersion}${parsedVersion.minorVersion}${parsedVersion.incrementalVersion}"  
          android:versionName="${project.version}">  
    

    En el fichero pom.xml

    1:                 <resource>  
    2:                      <targetPath>${project.basedir}/target/filtered-manifest</targetPath>  
    3:                      <filtering>true</filtering>  
    4:                      <directory>${basedir}</directory>  
    5:                      <includes>  
    6:                           <include>AndroidManifest.xml</include>  
    7:                      </includes>  
    8:                 </resource>  
    

    1:                 <plugin>  
    2:                      <artifactId>maven-resources-plugin</artifactId>  
    3:                      <executions>  
    4:                           <execution>  
    5:                                <phase>initialize</phase>  
    6:                                <goals>  
    7:                                     <goal>resources</goal>  
    8:                                </goals>  
    9:                           </execution>  
    10:                      </executions>  
    11:                 </plugin>  
    

    1:                 <plugin>  
    2:                      <groupId>org.codehaus.mojo</groupId>  
    3:                      <artifactId>build-helper-maven-plugin</artifactId>  
    4:                      <executions>  
    5:                           <execution>  
    6:                                <id>parse-version</id>  
    7:                                <goals>  
    8:                                     <goal>parse-version</goal>  
    9:                                </goals>  
    10:                           </execution>  
    11:                      </executions>  
    12:                 </plugin>  
    

    Para más información, podéis consultar:  http://www.simpligility.com/2010/11/release-version-management-for-your-android-application/
      Saludos,

      JK

        No hay comentarios:

        Publicar un comentario