Buscar en este blog....

martes, 12 de abril de 2011

Instalar AspectJ en NetBeans 6.9.1

English version

Hola. Finalmene, después de horas de intentos, logré copilar AspectJ en NetBeans 6.9.1.
Ahora les muestro la forma de hacerlo. Pero quiero aclarar que no voy a instalar un plug-in de netbeans, sino que voy a mostrar la forma de compilar aspectos en netbeans con AspectJ. Veamos los pasos:

1) Descargar la última versión estable de AspectJ en este sitio.
2) Descomprimir el archivo ".jar" en algún directorio donde pongan librerías. No debería ser en el directorio de librerías del proyecto, ya que quizás quieras usar esta librería en otros proyectos.
3) Crear un proyecto en netbeans, basta con un simple "Java Project".

Ahora, los próximos pasos deben seguirlos en cada nuevo proyecto que hagan:

4) Ir a las propiedades del proyecto, y en el panel de "librerias", seleccionar "Add Jar/Folder". Ahora, seleccionar los siguientes archivos del archivo descomprimido:
  • aspectjrt.jar
  • aspectjtools.jar
  • org.aspectj.matcher.jar

5)Una vez que se agregaron estos archivos, hay que editar el archivo build.xml creado en el directorio del proyecto.
6) Entre los tags <project> y </project> pegar el siguiente código:


<taskdef classpath="/home/ignacio/NetBeansProjects/lib/aspectj/aspectjtools.jar"
resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties"/>

<target name="aspectj">
<echo level="info">--- aspectj (start) ---</echo>
<iajc destDir="${build.classes.dir}">
<inpath>
<pathelement location="/home/ignacio/NetBeansProjects/lib/aspectj/aspectjrt.jar"/>
<pathelement location="${build.classes.dir}" />
</inpath>
<sourceroots>
<pathelement location="${src.dir}"/>
</sourceroots>
<classpath>
<pathelement location="${javac.classpath}"/>
<pathelement location="${j2ee.platform.classpath}"/>
</classpath>
</iajc>
<echo level="info">--- build.xml by Ignacio Rigoni email: {name}.{lastname}@gmail.com ---</echo>
</target>

<target name="-post-compile" depends="aspectj"></target>


De forma tal que el archivo build.xml les quede así:


<?xml version="1.0" encoding="UTF-8"?>

<project name="pruebaAspectJ_nb6.9.1" default="default" basedir=".">
<description>Builds, tests, and runs the project pruebaAspectJ_nb6.9.1.</description>
<import file="nbproject/build-impl.xml"/>

<taskdef classpath="/home/ignacio/NetBeansProjects/lib/aspectj/aspectjtools.jar"
resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties"/>

<target name="aspectj">
<echo level="info">--- aspectj (start) ---</echo>
<iajc destDir="${build.classes.dir}">
<inpath>
<pathelement location="/home/ignacio/NetBeansProjects/lib/aspectj/aspectjrt.jar"/>
<pathelement location="${build.classes.dir}" />
</inpath>
<sourceroots>
<pathelement location="${src.dir}"/>
</sourceroots>
<classpath>
<pathelement location="${javac.classpath}"/>
<pathelement location="${j2ee.platform.classpath}"/>
</classpath>
</iajc>
<echo level="info">--- build.xml by Ignacio Rigoni email: {name}.{lastname}@gmail.com ---</echo>
</target>

<target name="-post-compile" depends="aspectj"></target>

</project>


7) Ahora, modificar las lineas 7 y 14. En la línea 7 hay que especificar la ruta completa del archivo "aspectjtools.jar". Esto se hace donde descomprimiste aspectj. En la línea 14 hay que hacer lo mismo, pero apuntando al archivo "aspectjrt.jar".

8) Eso es todo!

Consideraciones

1) Bajar el archivo aspect{version}.jar, no el archivo aspectj{version}-src.jar.
2) Tener cuidado con las rutas de los archivos, siempre causan problemas!
3) No estoy seguro, pero es posible que las otras lineas que agregaron en build.xml tengan errores. A mi me funcionaron bien, pero puede que esto dependa del proyecto creado, así que si esto les causa problemas, hay que chequear los directorios a los que apunta el resto del archivo, y otras causas posibles de errores.

Espero que esto te ayude. Vuelvan a comentar si anduvo y/o si tienen sugerencias que crean que puede mejorar esto.

1 comentario:

  1. Podrías subir tu proyecto en NB para verificar lo de los errores de las lineas agregadas a build.xml ?

    ResponderEliminar

Comments are subject to moderation, only in order to avoid insults and disguising things.

Los comentarios están sujetos a moderación, solo con el fin de evitar insultos y cosas por el estilo.