2011-02-07 10 views
13

Desarrollo una aplicación para Android usando eclipse, Android Development Tools (ADT) plugin y maven-android-plugin.Incluir dependencias maven en eclipse "Ejecutar como -> Aplicación Android" compilación

Crear e instalar la aplicación en la línea de comandos (mvn install/adb install) funciona bien, especialmente incluye todas las dependencias especificadas en el pom.xml.

La implementación de la aplicación en Android a través de eclipse (Ejecutar como -> Aplicación de Android) no coloca automáticamente las dependencias en el archivo apk, aunque se especifica en el archivo pom.xml. No los declaro explícitamente en el diálogo del proyecto de eclipse Build Path -> Libraries.

¿Hay una manera de hacer Eclipse incluyen las dependencias definidas en el pom.xml sin definig ellos dos veces en el proyecto Build-Path -> Bibliotecas?

EDIT: Para aclarar: el proyecto eclipse incluye una entrada "Dependencias Maven" con todas las dependencias especificadas en el pom.xml. Pero estas dependencias no se incluirán en la aplicación durante la instalación a través de "Ejecutar como -> Aplicación de Android". Para incluirlos, se debe agregar cada uno en el cuadro de diálogo "Ruta de compilación de Java -> Bibliotecas". Ese es el dolor!

+0

suena como un error o una característica que falta en el complemento, maven sabe cómo manejarlo, pero el proyecto bajo el eclipse no lo hace. ¿Puedes hacer una importación "maven" para eclipsar, es decir, abrir archivo-> importar-> proyecto maven o algo por el estilo y luego podría actualizar la ruta de compilación automáticamente? – codeScriber

+1

@codeScriber La importación de maven funciona bien. Todas las dependencias aparecen dentro de la entrada "Dependencias de Maven", por lo que el desarrollo no es el problema. Pero no se instalarán con la aplicación (en el emulador) a menos que todos los jar de los dependientes se agreguen explícitamente (Agregar JAR externos ...) a la pestaña Bibliotecas en el cuadro de diálogo Ruta de compilación de Java. – FrVaBe

+0

@ K.Claszen Cierto. tan pronto como agregué Facebook lib como jar externo, todo comenzó a funcionar. Sin embargo, ¿has descubierto cómo solucionar esto de una manera más "normal"? Quiero decir que es algo así como matar a Maven si tienes que agregar tus libs manualmente. –

Respuesta

3

Quizás deberías mirar m2e-android, asumiendo que ya estés usando M2Eclipse.

+0

¡Suena realmente bien! Lo intentaré mañana y daré tu opinión (el tiempo se acaba hoy). ¡Gracias! – FrVaBe

+0

¿Has hecho alguna experiencia goog con este complemento? Después del eclipse de instalación se cuelga en "Building Workspace ..." muy a menudo (al menos cuando se habilita "Build automatically") y también parece que el proceso de compilación funciona en bucle. Lo peor es que las dependencias no están incluidas en el archivo apk como se esperaba. – FrVaBe

+0

Me gustaría marcar esto como la respuesta correcta, pero como el complemento no incluye todas las depdencencias de proyectos en el archivo apk y también ralentiza el eclipse "Compilación automática" no puedo recomendarlo por ahora (se supone que no hice cualquier error). – FrVaBe

4

He habilitado las "Dependencias Maven" -checkmark en "Ordenar y Exportar" dentro de los proyectos "Java Build Path" configuración y que parece incluir todas las dependencias maven.

Estas dependencias (alcance de compilación) se colocan en target/android-classes (y hay muchas, más comúnmente instantáneas de proyectos internos, aproximadamente 10). Tuve algunas otras dificultades, pero probablemente esté relacionado con el complemento de integración de Android m2eclipse (al menos en Windows 7).

para conseguir mi bien configurado proyecto experta en funcionamiento tuviera que:

ya sea de importación como experto proyecto o ...

archivos creados previamente limpias de eclipse (mvn eclipse: limpio, mvn eclipse: eclipse) , luego habilite la resolución de dependencia de maven para ese proyecto, adept Java Build Path (gen -> target/android-classes, src -> target/classes, default output folder -> android-classes) y exporte Maven Dependencies (enable checkmark).

Una cosa que encontré fue: "No se pudo encontrar * .apk!" error al ejecutar o depurar la aplicación de Android. Podría arreglar eso usando un jdk de 32 bits para el entorno de ejecución utilizado.

+0

¿A qué te refieres con _ parece incluir_? ¿Lo revisaste? Como observé, esto no incluye bibliotecas de terceros "reales". (No hablo de todas las dependencias transitivas 'provistas' del artefacto com.google.android:android). – FrVaBe

Cuestiones relacionadas