Entradas

Importando proyecto Maven a IntelliJ IDEA.

Ahora que hemos configurado Maven en nuestro OS X y que tenemos un proyecto básico (creado con el plugin de archetype) en Java, vamos a proceder a incluirlo dentro de IntelliJ IDEA:

  1. Lo primero de todo y si aún no lo habéis hecho, debéis descargar la versión correspondiente del entorno de desarrollo IntelliJ IDEA (en mi caso uso la versión de la comunidad.
  2. Una vez descargado y descomprimido, seleccionaremos la opción Import Project de la pantalla principal.
  3. A continuación seleccionaremos el archivo pom.xml de nuestro proyecto, en mi caso ubicado en ~/Documents/apache-maven-3.3.3/bin/M101J/.
  4. Una vez hecho esto (en la siguiente pantalla) seleccionaremos el check “Import Maven projects automatically” y en el apartado Automatically Download seleccionaremos las opciones “Sources” y “Documentation”.
  5. En la siguiente pantalla debiera venir el proyecto a importar seleccionado por defecto.
  6. En la siguiente seleccionaremos la jdk (de las instaladas en nuestro mac) con la que queremos trabajar, en mi caso la 1.7.
  7. Indicaremos el nombre con el que queremos que IntelliJ IDEA importe el proyceto, y LISTO!

Ahora estamos preparados para funcionar. Podéis hacer una prueba ejecutando la clase App.java.

Instalando maven en OS X.

Una buena herramienta para la gestión y construcción de proyectos automatizada en Java es Maven. A continuación os indicaré los pasos a seguir para instalar el mismo en vuestro OS X:

  1. Lo primero que deberemos hacer es descargar la versión que deseemos desde el sitio de maven, en nuestro caso seleccionaremos el fichero apache-maven-3.3.3-bin.zip de la sección Link.
  2. A continuación descomprimimos el archivo usando unzip apache-maven-3.3.3-bin.zip
  3. Lo siguiente (este paso también se puede hacer previo al 2) que haremos será mover la carpeta descomprimida al directorio donde queramos tenerla, en mi caso /Users/benjagarrido/Documents/apache-maven-3.3.3
  4. Modificamos nuestro archivo .bash_profile accediendo a la ruta donde se localiza el fichero con cd ~ y editamos el fichero con nano .bash_profile y añadimos al mismo:
    export M2_HOME="/Users/benjagarrido/Documents/apache-maven-3.3.3"
    export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m"
    export PATH=${PATH}:${M2_HOME}/bin
  5. Salvamos, salimos y recargamos el fichero con source .bash_profile

Despues de esto podremos volver a comprobar la versión de maven (mvn -version):
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00)
Maven home: /Users/benjagarrido/Documents/apache-maven-3.3.3
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre
Default locale: es_ES, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.4", arch: "x86_64", family: "mac"

A continuación haremos una sencilla prueba:

  1. Iremos a nuestro terminal y teclearemos mvn
  2. En mi caso obtengo un error que me indica que la construcción del proyecto ha fallado BUILD FALIURE .
  3. Esto es debido a que no tenemos ningún proyecto por lo que vamos a proceder a crear uno utilizando el plugin archetype que nos permite crear un proyecto “vacío”. Para ello introduciremos el siguiente comando mvn archetype:generate y pulsaremos ENTER.
  4. A continuación configuraremos los parámetros necesarios, en el primer caso elegiremos el por defecto (pulsando ENTER sin introducir nada), idem para el siguiente, como groupId indicaremos en mi caso com.mongodb (esto es el nombre del paquete en java), introducimos el artifactId que en mi caso será M101J (es la carpeta raíz de vuestro proyecto) y dejamos la versión y el paquete por defecto (pulsando ENTER sin introducir nada)
  5. A continuación podremos acceder a la carpeta creada cd M101J y podemos visualizar su contenido con find . comprobando que tenemos la estructura básica de un proyecto Java incluido el fichero pom.xml (Project Object Model).
  6. A continuación ejecutaremos la clase App.java utilizando el plugin EXEC de Maven tecleando mvn clean compile exec:java -Dexec.mainClass=com.mongodb.App y en nuestro caso antes de obtener el mensaje de BUILD SUCCESS debieramos ver nuestro querido Hello World! (que es lo que contiene el esquema básico de este proyecto).

Modificando la jdk por defecto en nuestro OS X.

Podéis comprobar la versión de vuestra JDK tecleando el siguiente comando en el terminal java -version
En mi caso tengo instalada la versión 1.8.0_45 de la JDK y para realizar un curso necesito utilizar la 1.7 por cuestiones de incompatibilidad. Por lo que nos ponemos manos a la obra:

  1. Nos dirigimos al sitio oficial para descargar la jdk que necesitamos JDK 7.
  2. Después seleccionamos  Java SE Development Kit 7u79 y marcamos la opción Accept License Agreement para que nos permita descargarlo y seleccionamos la opción correspondiente a nuestro OS X Mac OS X x64 (que pesa aproximadamente unos 197 Mb). Esto nos decargará el correspondiente archivo .dmg en nuestra carpeta de descargas.
  3. Buscamos el .dmg y realizamos la instalación, se trata de una instalación guiada, por lo que no me entretendré en detalles.
  4. Si no habéis modificado nada, la ruta de instalación debiera ser /Library/Java/JavaVirtualMachines/
  5. Modificamos nuestro archivo .bash_profile accediendo a la ruta donde se localiza el fichero con cd ~ y editamos el fichero con nano .bash_profile y añadimos al mismoexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home"export PATH="$HOME/bin:$PATH:$JAVA_HOME/bin"
  6. Salvamos, salimos y recargamos el fichero con source .bash_profile

Despues de esto podremos volver a comprobar la versión de java y del compilador dando como resultado la versión que habíamos indicado.
Existe otra opción menos “elegante” que es modificar el valor de nuestra variable $JAVA_HOME y esto lo haremos con el siguiente comando export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

Programación Java. Uso correcto al importar.

package examples.rules.codsta;
import java.io.*; // ERROR

public class prueba {
void method (InputStream in)
{
//CÓDIGO DEL MÉTODO
}
}

package examples.rules.codsta;
import java.io.InputStream; // ARREGLADO

public class prueba {
void method (InputStream in)
{
//CÓDIGO DEL MÉTODO
}
}

Programación Java. Declaración de bucles for{}.

Ejemplo de mal uso:

for (int i=0;i < miVector.size();i++) {
    <código para tratar cada elemento de miVector>
}

Ejemplo buena práctica:

int tam=miVector.size();
for (int i=0;i<tam ;i++) {
    <código para tratar cada elemento de miVector>
}

OJO! Hay que tener en cuenta una cuestión con el correcto uso de Java. Si se modifica el tamaño del vector (eliminar/añadir elementos) como en el siguiente ejemplo:

int size = lista.size();
for (int i=0; i < size; i++) {
//codigo
if(condicion) {
   lista.remove(i);
}
//más código
}

Esto provocaría un IndexOutOfBoundsException, puesto que el tamaño de la lista se reduce, pero la condición del bucle for seguirá iterando la lista hasta su tamaño original.