Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / README.txt @ 40462

History | View | Annotate | Download (5.18 KB)

1 40435 jjdelcerro
2
Como compilar
3
================
4
5
Para compilar la aplicacion gvSIG es necesario disponer de:
6
7
- maven instalado en el sistema, recomenado maven 3 (aunque podria compilar
8
  con maven 2).
9
10
- Acceso a internet para acceder a los repositorios de maven de la aplicacion.
11
12 40462 jjdelcerro
- Si usan maven2 debera configurar la variable MAVEN_OPTS con el valor adecuado
13
  (ver "notas de compilacion").
14 40435 jjdelcerro
15
- Descargar la carpeta org.gvsig.desktop y ejecutar "mvn clean install".
16
17 40462 jjdelcerro
  Esto, por defecto, desplegara en la carpeta target/product la instalacion
18
  de gvSIG.
19 40435 jjdelcerro
20
Notas de compilacion
21
========================
22
23
MAVEN_OPTS
24
------------
25
26 40462 jjdelcerro
Usando maven 2, para que compile correctamente gvsig precisaremos especificar
27
en la variable MAVEN_OPTS una serie de valores para reserbar memoria para el
28
compilador.
29 40435 jjdelcerro
30
Valores adecuados para la compilacion del proyecto "org.gvsig.desktop" son::
31
32
  -Xms256m -Xmx512m -XX:PerenmSize=64m -XX:MaxPermSize=128m
33
34
Para asignar estos valores en linux puede hacerlo ejecutando la siguiente
35
instruccion en la linea de comandos desde la que vaya a compilar::
36
37
  export MAVEN_OPTS="-Xms256m -Xmx512m -XX:PerenmSize=64m -XX:MaxPermSize=128m"
38
39
En windows ....  ¿? FIXME
40
41
42
Si esta compilando desde eclipse, precisara tener instalado el plugin maven2e
43
44 40462 jjdelcerro
Usando maven2, cuando no especifica correctamente estos valores pueden
45
aparecerle errores como:
46 40435 jjdelcerro
47
- Error "Compilation failure..."::
48
49
    [ERROR] BUILD FAILURE
50 40462 jjdelcerro
    [INFO] ---------------------------------------------------------------
51 40435 jjdelcerro
    [INFO] Compilation failure
52
    Failure executing javac, but could not parse the error:
53
54
55
    The system is out of resources.
56
    Consult the following stack trace for details.
57
    java.lang.OutOfMemoryError: PermGen space
58
59
60
- Error "Error while executing forked tests..."::
61
62
    [ERROR] BUILD ERROR
63 40462 jjdelcerro
    [INFO] ---------------------------------------------------------------
64 40435 jjdelcerro
    [INFO] Error while executing forked tests.; nested exception is org.apache.maven.surefire.booter.shade.org.codehaus.plexus.util.cli.CommandLineException: Error setting up environmental variables
65
66
    java.io.IOException: error=12, Cannot allocate memory
67
68
gvsig-devel.properties
69
------------------------------
70
71 40462 jjdelcerro
Por defecto al ejecutar "mvn install" sobre org.gvsig.desktop la aplicacion
72
se desplegara en la carpeta target/product de ese mismo directorio. Una vez
73
ejecutado ese primer comando maven sobre la carpeta org.gvsig.desktop debera
74
editar el fichero ".gvsig-devel.properties" de la carpeta del usuario si
75
desea cambiarlo.
76 40435 jjdelcerro
77 40462 jjdelcerro
Si tiene varios espacios de trabajo y desea que cada uno despliegue sobre
78
una carpeta distinta puede copiar el fichero de su carpeta de usuario a la
79
carpeta raiz de org.gvsig.desktop con el nombre "gvsig-devel.properties" y
80
cambiar en el sobre donde quiere hacer el despliegue, asi puede tener varias
81
"instancias" del desarrollo de gvSIG desplegandose sobre sitios distintos.
82 40435 jjdelcerro
83 40462 jjdelcerro
Si ejecuta "mvn install" desde algun subproyecto de org.gvsig.desktop tenga
84
en cuenta que solo se utilizara el fichero ".gvsig-devel.properties" que hay
85
en su carpeta de usuario y no el del que se encuentre en org.gvsig.desktop.
86 40435 jjdelcerro
87
Notas pendientes
88
=================
89
90
Puede ser interesante mirar el plugin
91
92
http://mojo.codehaus.org/versions-maven-plugin/
93
94
95
Importantes
96
-------------
97
98
- En el pom de org.gvsig.desktop.installer hay una variable que falta por
99
  definir. No tengo nada claro que valor a de tener.
100
101 40462 jjdelcerro
- Hay que añadir la gestion de alias de paquetes del administrador de
102
  complementos.
103 40435 jjdelcerro
104
A tener en cuenta
105
--------------------
106
107 40462 jjdelcerro
- Andami se lleva ahora muchas mas dependencias que antes, entre otras el
108
  api de la libreria de proyecciones (se lo lleva org.gvsig.ui) pero como
109
  no se lleva una implementacion peta en la inicializacion. De momento he
110
  puesto un exclude de org.gvsig.projection en el assembly.
111
112 40435 jjdelcerro
- Los snappers que hay en appgvsig dependen de jts.
113
  Habria que ver de cambiar su implementacion para que usen el API
114
  de la libreria de geometrias y eliminar la dependencia de compilacion
115
  de appgvsig hacia jts del pom.
116
117
  - TangentPointSnapper
118
  - PixelSnapper
119
  - MediumPointSnapper
120
  - PerpendicularPointSnapper
121
  - NearestPointSnapper
122
123 40462 jjdelcerro
- La clase Line2DOffset en org.gvsig.symbology.lib.impl hace uso intensivo
124
  de JTS. Ver si es viable crear una operacion sobre la geometria que haga
125
  lo que hace esa clase.
126 40435 jjdelcerro
127
- En org.gvsig.symbology.swing se hace uso de funcionalidades de andami.
128
129
- Hay que repasar la asignacion de iconos a las capas. Ver la extension
130
  de extDWG, pero puede afectar a otras.
131
132
- Ver que pasa con las clases de DAL FeatureQueryOrder y DefaultFeatureComparator.
133 40462 jjdelcerro
  De momento he hecho una chapuza y he incrustado DefaultFeatureComparator
134
  dentro de FeatureQueryOrder en el API.
135 40435 jjdelcerro
136 40462 jjdelcerro
- En la libreria de geometrias, la operacion Equals y el metodo equals de
137
  Geometry hacen cosas distintas. En mapcontext, EqualsGeometryEvaluator,
138
  he sustituido la llamada a la operacion por el metodo.
139 40435 jjdelcerro
140 40462 jjdelcerro
- El proyecto org.gvsig.new.layer.lib.impl tiene una dependencia con
141
  org.gvsig.projection.cresques.ui
142 40435 jjdelcerro
143 40462 jjdelcerro
- En PluginServices, en el metodo getPluginHomeFolder, habria que hacer que
144
  si es nuevo copie los contenidos de los AlternativeNames a el. De esta
145
  forma seguira funcionanado con la configuracion que tuviese el usuario
146
  aunque se renombre un plugin.
147 40435 jjdelcerro
148
149
150