viernes, marzo 05, 2010

Compilar Alfresco Community en MacOS X


Instalar Eclipse:


Lo primero es instalar Eclipse de http://www.eclipse.org siguiendo el instalador para MacOS X.


Instalar Alfresco desde el instalador:

Lo segundo, como recomendación para copiar todas las utilidades que necesitamos sin necesidad de bajarselas de las respectivas webs, es instalar la versión de Alfresco con instalador que haya para MacOS X desde http://www.alfresco.com

Luego, copiamos el directorio tomcat que hay en el Alfresco instalado en la ubicación donde queremos dejar el resultado de la compilación, en mi caso en /Users/fegor/Documents/workspace/tomcat

Para la configuración podemos aprovechar para copiar un fichero de configuración de ejemplo que es desplegado en el primer arranque (por cierto, en la instalación se puede usar la base de datos por defecto que es Derby ya que la que usaremos posteriormente es MySQL)

cd /Users/fegor/Documents/workspace/tomcat
cp webapps/alfresco/WEB-INF/classes/alfresco-global.properties.sample shared/classes/alfresco-global.properties

Se modifica este fichero con los valores correspondientes:

dir.root=/Users/fegor/Documents/workspace/tomcat/alf_data
db.username=alfresco
db.password=alfresco
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://localhost/alfresco

Y se añaden las líneas para localizar las diferentes herramientas necesarias (hay que verificar que los paths son los correctos)

ooo.exe=/Applications/OpenOffice.org.app
ooo.user=${dir.root}/oouser
img.root=/Users/fegor/Documents/workspace/tomcat/ImageMagick-6.5.9
swf.exe=/Users/fegor/Documents/workspace/tomcat/pdf2swf


Instalando OpenOffice:

Si se va a utilizar OpenOffice para más cosas que la conversión de documentos en Alfresco, lo mejor es instalarlo de forma estándar descargándolo de http://porting.openoffice.org/mac/


Instalando pdf2swf:

La forma que he visto más sencilla es instalar la versión full para MacOS X (por ejemplo la versión 3.1 SP2 tiene instalador para MacOS X) y luego copiar el ejecutable a nuestra compilación:

cp /Users/fegor/Alfresco/bin/pdf2swf /Users/fegor/Documents/workspace/tomcat


Instalando ImageMagick:

Para la instalación de ImageMagick se puede copiar también el directorio de la instalación full de Alfresco o bien descargarlo de http://www.imagemagick.org/script/binary-releases.php

En esta página existen dos formas de instalarlo, una mediante MacPorts (http://www.macports.org/) y otra bajándose directamente el paquete en tar.gz (http://www.imagemagick.org/download/binaries/ImageMagick-x86_64-apple-darwin10.2.0.tar.gz). He preferido bajar el paquete, descomprimirlo y ponerlo directamente dentro de la instalación de tomcat (Alfresco) ya que solo va a usarse para esto.

Por tanto:

tar xvzf ImageMagick-x86_64-apple-darwin10.2.0.tar.gz
mv ImageMagick-6.5.9/ /Users/fegor/Documents/workspace/tomcat/


Instalando MySQL para Mac:

Se puede descargar de la propia http://www.mysql.com y usar las instrucciones de instalación siguientes: http://dev.mysql.com/doc/refman/5.0/es/mac-os-x-installation.html

Una vez instalada y arrancada hay que crear la base de datos alfesco con usuario alfresco y password alfresco.

mysqladmin -u root create alfresco
mysql -u root -e "grant all on alfresco.* to 'alfresco'@'localhost.localdomain' identified by 'alfresco' with grant option;"
mysql -u root -e "grant all on alfresco.* to 'alfresco'@'localhost' identified by 'alfresco' with grant option;"


Bajar los fuentes de Alfresco:

Se puede seguir el siguiente enlace en caso de problemas, http://wiki.alfresco.com/wiki/Alfresco_SVN_Development_Environment y en concreto para eclipse el siguiente http://wiki.alfresco.com/wiki/Alfresco_on_Eclipse

Instalar Sysdeo para usar (arrancar y parar) los servidores de aplicaciones tomcat, desde http://www.eclipsetotale.com/tomcatPlugin/tomcatPluginV321.zip.

Solo hay que descomprimirlo dentro del directorio plugins, en mi caso en /Applications/eclipse/plugins

Ejecutar eclipse y configurar en Eclipse -> Preferences -> Tomcat el lugar donde está el tomcat, la JVM y añadir los siguientes parámetros a la JVM (JVM Settings):

-server
-Xss256k
-Xms256m
-Xmx512m
-XX:NewSize=128M
-XX:MaxPermSize=128M

Y en Classpath: hay que introducir el camino a las classes de tomcat:

/Users/fegor/Documents/workspace/tomcat/shared/classes

Ahora configuramos Ant desde Eclipse -> Preferencias -> Ant -> Runtime -> Properties

Y añadir las siguientes propiedades:

env.TOMCAT_HOME = /Users/fegor/Documents/workspace/tomcat
env.APP_TOMCAT_HOME = /Users/fegor/Documents/workspace/tomcat
env.VIRTUAL_TOMCAT_HOME = /Users/fegor/Documents/workspace/tomcat/virtual-tomcat


Instalar Subclipse:

En nuestro eclipse: Help -> Install new software... (botón Add)

Name: Subclipse 1.6.x (Eclipse 3.2+)
Location: http://subclipse.tigris.org/update_1.6.x

Y proceder a marcar las casillas e instalar (botón Next...).


Configurar el proyecto de Alfresco en SVN:

1) Ir a File -> New -> Project
2) Seleccionar el asistente SVN y "Checkout Projects with Subversion"
3) En "Create a new repository location"
4) Seleccionar la URL: "svn://svn.alfresco.com" (*)
5) Por último la carpeta Alfresco y pulsar Finish.


Importar el proyecto Alfresco siguiendo los siguientes pasos:

1) File -> Import
2) General -> Existing Projects Into Workspace -> Next
3) Seleccionar HEAD\root\proyecto
4) Finish


Crear el proyecto Ant:

1) Seleccionar New -> Project. Bajo "General" elegir "Project" y en el nombre poner "ant"
2) Pulsar botón derecho del ratón en el proyecto y seleccionar New -> File
3) Cuando aparezca el nuevo diálogo, pulsar en el botón de Advanced y seleccionar "Link to file in the file system"
4) Ir al fichero build.xml localizado en el directorio HEAD\root
5) Para construir el proyecto, ponerse encima de Build.xml con el botón derecho del ratón y seleccionar Run As... -> Ant Build

Nota: Si se reciben errores en la compilación, hay que elegir java-6-sun en lugar de java-6-opensdk en Preferences -> Java -> Installed JREs.

...y eso es todo. Para muestra "un botón", digo unas imágenes ;)

Resultado de la compilación:


Y la versión resultante:



(*) Me confundí con la URL, la siguiente funciona correctamente: http://svn.alfresco.com/repos/alfresco-open-mirror/alfresco

12 comentarios:

Toni dijo...

que bueno Fernando!! muchas gracias tio ;)

El Felipe dijo...

La verdad es que no quiero instalar ni OpenOffice, pdf2swf, ImageMagick por lo que quizás está demás poner estas lineas:
ooo.exe=/Applications/OpenOffice.org.app
ooo.user=${dir.root}/oouser
img.root=/Users/fegor/Documents/workspace/tomcat/ImageMagick-6.5.9
swf.exe=/Users/fegor/Documents/workspace/tomcat/pdf2swf


De ahí en más no he logrado avanzar por lo mismo.

Saludos cordiales

fegor dijo...

Si Felipe, efectivamente, si no las vas a usar puedes comentarlas.

Tavo Nieto dijo...

Fegor excelente aporte, me a servido de mucho, estoy empezando a trabajar con alfresco en eclipse sobre win7, e tenido problemas para lograr compilar el codigo fuente que bajo via svn, me marca errores con el javac y en el archivo projetcs.xml y macro.xml, me gustaria que me pudieras orientar para la correcta configuracion tanto de eclipse como alfresco

fegor dijo...

Siguiendo este artículo puedes compilarlo aunque sea bajo Windows 7, pero dime exactamente qué errores te da y vemos que pasa.

Un saludo y gracias por visitar mi blog.

Tavo Nieto dijo...

fernando e configurado lo siguiente:

puse el plugin de tomcat en eclipse para que me diera el soporte y lo configure con las JVM settings de tu post, configure las variables de entorno en windows la de classpath y path con el src.zip y tools.jar, le agrege al classpath de tomcat en eclipse "/tomcat/shared/classes"
y le puse que uso la version 6.x de tomcat, ahi mismo le di el Tomcat home, y en el contexto de declaracion manejo como server.xml,
en el apartado de ANT/runtime agrege el tools.jar al classpath default de ant, y en las propiedades le agrege los 3 env de tu post
Configure el SVN y descarge el SC, como mencionas en tu post y cree el proyecto ant para construir alfresco

Nota: tengo dudas de como configurar el archivo alfresco-global.properties y donde colocarlo e igual las herramientas swftools, imagimagick. e copiado esas carpetas de la instalacion full de alfresco a la carpeta TOMCAT

a la hora de crear el pryecto ant, el build.xml me marca el siguiente warning:
\\ALFRESCO_SVN\alfresco\HEAD\root\${dir.project.3rdparty.lib} not found

y a la hora de compilar con el build ant me arroja este error:


BUILD FAILED
D:\WorkSpace\ALFRESCO_SVN\alfresco\HEAD\root\build.xml:602: Directory does not exist:D:\WorkSpace\ALFRESCO_SVN\alfresco\HEAD\root\${env.TOMCAT_HOME}\lib

y al tratar de build el proyecto "extension sampled" me arroja el siguiente error:

Buildfile: D:\WorkSpace\ALFRESCO_SVN\alfresco\HEAD\root\projects\extension-sample\project-build.xml

BUILD FAILED
D:\WorkSpace\ALFRESCO_SVN\alfresco\HEAD\root\projects\extension-sample\project-build.xml:5: Cannot find D:\WorkSpace\ALFRESCO_SVN\alfresco\HEAD\root\common/common.xml imported from D:\WorkSpace\ALFRESCO_SVN\alfresco\HEAD\root\projects\extension-sample\project-build.xml

Tavo Nieto dijo...

el error que me arrojaba es este
BUILD FAILED
D:\WorkSpace\ALFRESCO_SVN\alfresco\HEAD\root\build.xml:602: Directory does not exist:D:\WorkSpace\ALFRESCO_SVN\alfresco\HEAD\root\${env.TOMCAT_HOME}\lib

ahora al configurarle las variables de entorno directamente en windows
de JAVA_HOME, TOMCAT_HOME,APP_TOMCAT_HOME, Y VIRTUAL_TOMCAT_HOME el error que marca cambia y es este:

D:\WorkSpace\CF_Alfresco\alfresco\HEAD\root\projects.xml:25: The following error occurred while executing this line:
D:\WorkSpace\CF_Alfresco\alfresco\HEAD\root\macros.xml:65: The following error occurred while executing this line:
D:\WorkSpace\CF_Alfresco\alfresco\HEAD\root\macros.xml:40: Error running javac.exe compiler

y en los xml las lineas de codigo son:



#este es la linea del error en macros.xml#


realmente no tengo idea de lo que suceda y el por que de los errores

Tavo Nieto dijo...

disculpa el atrevimiento pero me gustaria solicitarte apoyo para auxiliarme con algunas dudas, te explico, llevo 1 mes haciendo practicas profesionales en una empresa, y me interesa implementar Alfresco, pero me e topado con problemas para poder compilar el codigo fuente que descargo via SVN a traves de eclipse. el error que me salia al principio es el siguiente:

BUILD FAILED
D:\WorkSpace\CF_Alfresco\alfresco\HEAD\root\projects.xml:25: The following error occurred while executing this line:
D:\WorkSpace\CF_Alfresco\alfresco\HEAD\root\macros.xml:65: The following error occurred while executing this line:
D:\WorkSpace\CF_Alfresco\alfresco\HEAD\root\macros.xml:40: Error running javac.exe compiler

depues de revisar la wiki, foros y blogs encontre soluciones y hasta guias y aun asi no he podido lograr compilar el CF, lei q tenia que agregarle dentro de eclipse al classpath de ant la libreria tools.jar, pero al hacerlo y tratar de compilar el CF, me sale el siguiente error,

BUILD FAILED
D:\alfresco\HEAD\root\projects\extension-sample\project-build.xml:5: Cannot find
D:\alfresco\HEAD\root\common\common.xml imported from D:\WorkSpace\CF_Alfresco\alfresco\HEAD\root\projects\extension-sample\project-build.xml

realmente no se que error estoy cometiendo, siento que es en la configuracion del entorno de desarrollo, y el uso correcto de las versiones y tools, que indican que debemos usar. Me gustaria saber si me podrias orientar o dar algun material que me pueda ayudar o servir como guia para lograr la correcta configuracion y compilado del CF de Alfresco. Soy principiante en el sentido del openSource y sus herramientas por lo cual me a costado un poco de trabajo encontrar lo necesario de forma autodidacta por eso me atrevo a pedir apoyo a la comunidad
de antemano te lo agradesco tu pronta respuesta
atte: Gustavo Nieto

fegor dijo...

Hola Tavo, me pongo en contacto contigo de forma privada para darte soporte ya que los problemas que tienes exceden el ámbito de este post.

Gricel Chino Escobar dijo...

Segui todos los pasos y me dio el mismo error que comenta Tavo Nieto, por favor ayudame...

Gricel Chino Escobar dijo...

Hola Fernando, segui al pie de la letra los pasos que indicas, pero me salieron los mismos errores que postea Gustavo Nieto, por favor necesito que me ayudes ......

fegor dijo...

Igual que con Tavo, Gricel, mejor vía email.