Statistics
| Revision:

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

History | View | Annotate | Download (5.45 KB)

1

    
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
- Configurar la variable MAVEN_OPTS con el valor adecuado (ver "notas de compilacion").
13

    
14
- Descargar la carpeta org.gvsig.desktop y ejecutar "mvn clean install".
15
  
16
  Esto, por defecto, desplegara en la carpeta target/product la instalacion de gvSIG.
17

    
18
Notas de compilacion
19
========================
20

    
21
MAVEN_OPTS
22
------------
23

    
24
Para que compile correctamente gvsig precisaremos especificar en la variable
25
MAVEN_OPTS una serie de valores para reserbar memoria para el compilador.
26

    
27
Valores adecuados para la compilacion del proyecto "org.gvsig.desktop" son::
28

    
29
  -Xms256m -Xmx512m -XX:PerenmSize=64m -XX:MaxPermSize=128m
30

    
31
Para asignar estos valores en linux puede hacerlo ejecutando la siguiente
32
instruccion en la linea de comandos desde la que vaya a compilar::
33

    
34
  export MAVEN_OPTS="-Xms256m -Xmx512m -XX:PerenmSize=64m -XX:MaxPermSize=128m"
35

    
36
En windows ....  ¿? FIXME
37

    
38

    
39
Si esta compilando desde eclipse, precisara tener instalado el plugin maven2e
40
y para configurarlo especifique en .... ¿? FIXME
41

    
42
Cuando no especifica correctamente estos valores pueden aparecerle errores como:
43
 
44

    
45
- Error "Compilation failure..."::
46

    
47
    [ERROR] BUILD FAILURE
48
    [INFO] ------------------------------------------------------------------------
49
    [INFO] Compilation failure
50
    Failure executing javac, but could not parse the error:
51

    
52

    
53
    The system is out of resources.
54
    Consult the following stack trace for details.
55
    java.lang.OutOfMemoryError: PermGen space
56

    
57

    
58
- Error "Error while executing forked tests..."::
59

    
60
    [ERROR] BUILD ERROR
61
    [INFO] ------------------------------------------------------------------------
62
    [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
63

    
64
    java.io.IOException: error=12, Cannot allocate memory
65

    
66
gvsig-devel.properties
67
------------------------------
68

    
69
Por defecto al ejecutar "mvn install" sobre org.gvsig.desktop la aplicacion se desplegara
70
en la carpeta target/product de ese mismo directorio. Una vez ejecutado ese primer 
71
comando maven sobre la carpeta org.gvsig.desktop debera editar el fichero 
72
".gvsig-devel.properties" de la carpeta del usuario si desea cambiarlo.
73

    
74
Si tiene varios espacios de trabajo y desea que cada uno despliegue sobre una carpeta distinta
75
puede copiar el fichero de su carpeta de usuario a la carpeta raiz de org.gvsig.desktop con el 
76
nombre "gvsig-devel.properties" y cambiar en el sobre donde quiere hacer el despliegue, asi puede
77
tener varias "instancias" del desarrollo de gvSIG desplegandose sobre sitios distintos.
78

    
79
Si ejecuta "mvn install" desde algun subproyecto de org.gvsig.desktop tenga en cuenta que solo
80
se utilizara el fichero ".gvsig-devel.properties" que hay en su carpeta de usuario y no el del 
81
que se encuentre en org.gvsig.desktop .
82

    
83
Notas pendientes
84
=================
85

    
86
Puede ser interesante mirar el plugin 
87

    
88
http://mojo.codehaus.org/versions-maven-plugin/
89

    
90

    
91
Importantes
92
-------------
93

    
94
- El plugin org.gvsig.mkmvnproject.app.mainplugin no se empaquete correctamente, no 
95
  se descarga los fuentes de las plantillas, no se por que no lo hace aunque en el poms 
96
  parece decirselo.
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
- No se estan generando los indices para los paquetes del administrador de complementos.
102

    
103
- Hay que añadir la gestion de alias de paquetes del administrador de complementos.
104

    
105
- Andami se lleva ahora muchas mas dependencias que antes, entre otras el api de la libreria 
106
  de proyecciones (se lo lleva org.gvsig.ui) pero como no se lleva una implementacion
107
  peta en la inicializacion. De momento he puesto un exclude de org.gvsig.projection en el assembly.
108

    
109
A tener en cuenta
110
--------------------
111

    
112
- 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
- La clase Line2DOffset en org.gvsig.symbology.lib.impl hace uso intensivo de JTS. 
124
  Ver si es viable crear una operacion sobre la geometria que haga lo que hace esa clase.
125

    
126
- En org.gvsig.symbology.swing se hace uso de funcionalidades de andami.
127

    
128
- Hay que repasar la asignacion de iconos a las capas. Ver la extension 
129
  de extDWG, pero puede afectar a otras.
130

    
131
- Ver que pasa con las clases de DAL FeatureQueryOrder y DefaultFeatureComparator.
132
  De momento he hecho una chapuza y he incrustado DefaultFeatureComparator dentro
133
  de FeatureQueryOrder en el API.
134

    
135
- En la libreria de geometrias, la operacion Equals y el metodo equals de Geometry hacen
136
  cosas distintas. En mapcontext, EqualsGeometryEvaluator, he sustituido la llamada a
137
  la operacion por el metodo.
138

    
139
- El proyecto org.gvsig.new.layer.lib.impl tiene una dependencia con org.gvsig.projection.cresques.ui
140

    
141
- En PluginServices, en el metodo getPluginHomeFolder, habria que hacer que si es nuevo copie los
142
  contenidos de los AlternativeNames a el. De esta forma seguira funcionanado con la configuracion
143
  que tuviese el usuario aunque se renombre un plugin.
144

    
145

    
146

    
147