Tengo el manifiesto de actualización de objetivo maven trabajando en mi proyecto y actualizando los atributos que quiero cambiar según el perfil con el que estoy empaquetando; Lamentablemente, cambia el manifiesto que está en control de fuente. Me gustaría que cambie el manifiesto que está empaquetado, pero deje la versión maestra sola. No veo una versión de AndroidManifest como objetivo/a la que pueda apuntar. Estoy utilizando la versión plugin de android-Maven 3.2cómo puedo cambiar mi AndroidManifest ya que está empaquetado por maven
Respuesta
Si utiliza configuraciones como manifestVersionCode o manifestVersionName para actualizar manifiesto, esta es la forma en que se diseña y se supone que funciona, escribe los cambios en el AndroidManifest.xml originales.
Parece que lo que realmente necesita es un manifiesto de filtro en lugar de un manifiesto de actualización. El filtrado de recursos es otro escenario de uso soportado por android-maven-plugin y de uso frecuente.
AndroidManifest.xml muestra:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mycompany.myapp"
android:versionCode="${app.version.code}"
android:versionName="${app.version.name}">
... ...
pom.xml muestra:
<!-- value to be substituted in manifest -->
<properties>
<app.version.code>1</app.version.code>
<app.version.name>1.0.0-SNAPSHOT</app.version.name>
</properties>
... ...
<build>
<resources>
<!-- filter manifest and put filtered file in target/filtered-manifest/ -->
<resource>
<directory>${project.basedir}</directory>
<filtering>true</filtering>
<targetPath>${project.build.directory}/filtered-manifest</targetPath>
<includes>
<include>AndroidManifest.xml</include>
</includes>
</resource>
</resources>
... ...
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
<!-- tell build process to use filtered manifest -->
<androidManifestFile>${project.build.directory}/filtered-manifest/AndroidManifest.xml</androidManifestFile>
</configuration>
</plugin>
... ...
Ahora android-maven-plugin se utilice el AndroidManifest.xml filtrada y dejar el AndroidManifest.xml originales sin cambios.
Espero que esto ayude.
Actualización:
que puede hacerle falta esto también:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>resources</goal>
</goals>
</execution>
</executions>
</plugin>
me recomiendan usar manifiesta actualización objetivo de experto-android-plugin de lograr esto:
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.3.2</version>
<!-- This is for maven update properties in AndroidManifest file. Working outside eclipse. -->
<executions>
<execution>
<id>update-manifest</id>
<phase>process-resources</phase>
<goals>
<goal>manifest-update</goal>
</goals>
<configuration>
<manifest>
<versionCode>${project.codeVersion}</versionCode>
<versionName>${project.version}</versionName>
</manifest>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
es necesario definir también project.codeVersion
:
<properties>
<project.codeVersion>1</project.codeVersion>
</properties>
Y Maven actualizar su AndroidManifest.xml:
[INFO] --- android-maven-plugin:3.3.2:manifest-update (update-manifest) @ myapp --- [INFO] Attempting to update manifest d:\dsv\project\MyApp\AndroidManifest.xml [INFO] Setting android:versionName to 0.0.4 [INFO] Setting android:versionCode to 1 [INFO] Made changes to manifest file, updating d:\...\MyApp\AndroidManifest.xml
Más información sobre Android: manifiesta actualización objetivo here, se puede encontrar algunos parámetros útiles allí.
Nota importante: Esta soluciónsólo obras de línea de comandos, la ejecución de plugins todavía no está soportado por M2e-androide (ver este issue).
- 1. ¿Cómo cambiar AndroidManifest en tiempo de ejecución?
- 2. Cómo obtener contenido que ya está leído
- 3. ¿Por qué maven 2 intenta descargar dependencias que ya tengo?
- 4. Cómo acceder a un archivo XML en un proyecto de maven para que permanezca disponible cuando está empaquetado
- 5. Cómo cambiar el valor si la tabla ya está dibujada
- 6. Mi Android AChartEngine ya está funcionando, pero ¿cómo hacer que se vea bien?
- 7. ¿Puedo cambiar el alias de mi clave?
- 8. ¿Cómo puedo determinar por qué mi aplicación ASP.NET está reciclando?
- 9. ¿Cómo ignorar un archivo que ya está comprometido?
- 10. ¿Puedo crear un pthread dentro de un pthread, que ya está creado por el principal?
- 11. SVN "que ya está bloqueado error"
- 12. ¿Cómo puedo evitar que Maven busque actualizaciones de repositorios que no figuran en mi archivo settings.xml?
- 13. ¿Cómo usar Maven en mi proyecto Java y por qué?
- 14. ¿Cómo entender una base de datos que ya está desarrollada?
- 15. ¿Cómo volver a un UIViewController que ya está cargado?
- 16. Desde Eclipse, ¿cómo puedo ejecutar mi proyecto Maven en Tomcat?
- 17. Cambio de registro 'basicConfig' que ya está establecido
- 18. ¿Cómo puedo cambiar el nombre de guerra generada por Maven Plugin de montaje
- 19. ¿Cómo puedo capturar el stdout de un proceso que YA está en ejecución?
- 20. ¿Cómo puedo obtener el encabezado de la respuesta ya que ServletResponse(). GetHeader (cadena) no está visible?
- 21. ¿Por qué dice XSD que mi elemento no está completo?
- 22. ¿Cambiar el nombre en una aplicación que ya está en la tienda de aplicaciones?
- 23. LNK2005 (ya está definido)
- 24. ¿Cómo puedo probar un arquetipo maven que acabo de crear?
- 25. Cómo eliminar el archivo .jar de una guerra que está superpuesta por la dependencia de maven
- 26. ¿Cómo puedo establecer el foco en la aplicación que ya está en estado de ejecución?
- 27. ¿Cómo puedo cambiar los colores de mi gráfico circular Highcharts?
- 28. ¿Cómo lo arreglas? formtastic: label_method ya no está disponible
- 29. ¿Cómo puedo determinar cuánta memoria está usando mi programa .NET?
- 30. ¿Cómo puedo hacer que mi dispositivo vibre?
no parece poner en marcha el filtrado antes de que llegue a la etapa en la que necesita el manifiesto filtrada .. Todavía depuración necesaria – danb
esto: maven-recursos-plugin 2.5 inicializar recursos –
danb
@danb, sí, gracias por la respuesta de edición. – yorkw