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