svn-gvsig-desktop / tags / org.gvsig.desktop-2.0.396 / README.txt @ 47600
History | View | Annotate | Download (8.63 KB)
1 |
|
---|---|
2 |
Como compilar |
3 |
================ |
4 |
|
5 |
Para compilar la aplicacion gvSIG es necesario disponer de: |
6 |
|
7 |
- Un jdk 1.6 o superior (realmente solo se ha probado con el 1.6 y el 1.7). |
8 |
|
9 |
- maven instalado en el sistema, recomenado maven 3 (aunque podria compilar |
10 |
con maven 2), y que use el jdk 1.6 o superior. |
11 |
|
12 |
- Acceso a internet para acceder a los repositorios de maven de la aplicacion. |
13 |
|
14 |
- Si usan maven2 debera configurar la variable MAVEN_OPTS con el valor adecuado |
15 |
(ver "notas de compilacion"), con mvn3 en linux no suele ser necesario. |
16 |
|
17 |
- Descargar la carpeta org.gvsig.desktop y ejecutar "mvn clean install". |
18 |
|
19 |
Esto, por defecto, desplegara en la carpeta target/product la instalacion |
20 |
de gvSIG. |
21 |
|
22 |
Si se va a compilar todo desde cero, y no se tiene acceso al repositorio de |
23 |
gvSIG, puede ser necesario compilar antes el projecto org.gvsig.desktop.buildtools |
24 |
|
25 |
Notas de compilacion |
26 |
======================== |
27 |
|
28 |
MAVEN_OPTS |
29 |
------------ |
30 |
|
31 |
Usando maven 2, para que compile correctamente gvsig precisaremos especificar |
32 |
en la variable MAVEN_OPTS una serie de valores para reserbar memoria para el |
33 |
compilador. |
34 |
|
35 |
Valores adecuados para la compilacion del proyecto "org.gvsig.desktop" son:: |
36 |
|
37 |
-Xms256m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m |
38 |
|
39 |
Para asignar estos valores en linux puede hacerlo ejecutando la siguiente |
40 |
instruccion en la linea de comandos desde la que vaya a compilar:: |
41 |
|
42 |
export MAVEN_OPTS="-Xms256m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m" |
43 |
|
44 |
|
45 |
En Windows se establece en esta opci?n o similar |
46 |
(depende de versi?n de Windows): |
47 |
|
48 |
Panel de control |
49 |
> Sistema |
50 |
> Configurac?n avanzada del sistema |
51 |
> Variables de entorno |
52 |
> Nueva (en el valor no hace falta comillas) |
53 |
|
54 |
|
55 |
Si esta compilando desde eclipse, precisara tener instalado el plugin maven2e |
56 |
|
57 |
Usando maven2, cuando no especifica correctamente estos valores pueden |
58 |
aparecerle errores como: |
59 |
|
60 |
- Error "Compilation failure...":: |
61 |
|
62 |
[ERROR] BUILD FAILURE |
63 |
[INFO] --------------------------------------------------------------- |
64 |
[INFO] Compilation failure |
65 |
Failure executing javac, but could not parse the error: |
66 |
|
67 |
|
68 |
The system is out of resources. |
69 |
Consult the following stack trace for details. |
70 |
java.lang.OutOfMemoryError: PermGen space |
71 |
|
72 |
|
73 |
- Error "Error while executing forked tests...":: |
74 |
|
75 |
[ERROR] BUILD ERROR |
76 |
[INFO] --------------------------------------------------------------- |
77 |
[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 |
78 |
|
79 |
java.io.IOException: error=12, Cannot allocate memory |
80 |
|
81 |
gvsig-devel.properties |
82 |
------------------------------ |
83 |
|
84 |
Por defecto al ejecutar "mvn install" sobre org.gvsig.desktop la aplicacion |
85 |
se desplegara en la carpeta target/product de ese mismo directorio. Una vez |
86 |
ejecutado ese primer comando maven sobre la carpeta org.gvsig.desktop debera |
87 |
editar el fichero ".gvsig-devel.properties" de la carpeta del usuario si |
88 |
desea cambiarlo. |
89 |
|
90 |
Si tiene varios espacios de trabajo y desea que cada uno despliegue sobre |
91 |
una carpeta distinta puede copiar el fichero de su carpeta de usuario a la |
92 |
carpeta raiz de org.gvsig.desktop con el nombre "gvsig-devel.properties" y |
93 |
cambiar en el sobre donde quiere hacer el despliegue, asi puede tener varias |
94 |
"instancias" del desarrollo de gvSIG desplegandose sobre sitios distintos. |
95 |
|
96 |
Si ejecuta "mvn install" desde algun subproyecto de org.gvsig.desktop tenga |
97 |
en cuenta que solo se utilizara el fichero ".gvsig-devel.properties" que hay |
98 |
en su carpeta de usuario y no el del que se encuentre en org.gvsig.desktop. |
99 |
|
100 |
|
101 |
Como generar una distribucion de gvSIG |
102 |
========================================== |
103 |
|
104 |
- Descargaremos el trunk o nos aseguraremos de que estemos actualizados. |
105 |
|
106 |
- Nos cercioraremos que en nuestro fichero "gvsig-devel.properties", se apunta |
107 |
al target de lo que nos acabamos de descargar, o simplemente borraremos |
108 |
el fichero para que se recree con el valor correcto. |
109 |
|
110 |
- Comprobaremos que el numero de build de |
111 |
|
112 |
org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/buildNumber.properties |
113 |
|
114 |
Es el numero de build con el que debe salir la nueva distribucion. |
115 |
|
116 |
Si no lo es, ejecutaremos: |
117 |
|
118 |
mvn -Dincrease-build-number process-sources |
119 |
|
120 |
desde la carpeta org.gvsig.desktop para incrementarlo y commitaremos los cambios. |
121 |
|
122 |
- "cd org.gvsig.desktop" |
123 |
|
124 |
- "mvn clean" |
125 |
|
126 |
- "mvn install" |
127 |
|
128 |
Si la compilacion no ha dado problemas probaremos a ejecutar el gvSIG que hay en la carpeta |
129 |
org.gvsig.desktop/target/product para cercionarnos de que por lo menos arranca. |
130 |
|
131 |
- "mvn release:prepare 2>&1 | tee /tmp/mvn-release-prepare.log" |
132 |
|
133 |
Esto incrementa en local los numeros de version de todos los proyecos maven y prepara el tag |
134 |
con los fuentes en el repositorio. |
135 |
|
136 |
- "cd org.gvsig.desktop.installer" |
137 |
|
138 |
- "mvn clean" |
139 |
|
140 |
- "mvn install" |
141 |
|
142 |
Con esto se generara el instalable de gvSIG, asi como el paquete (gvspks) con los plugins basicos |
143 |
de la distribucion, y un zip con estos para incluirlos en el pool del repositorio de plugins |
144 |
de gvSIG. |
145 |
Como ya hemos hecho el "release:prepare" y aun no el "release:perform", los numeros de version de los |
146 |
proyectos saldran con las versiones finales (sin SNAPSHOT). |
147 |
|
148 |
- Subiremos los binarios que haya en org.gvsig.desktop.installer/target a donde se |
149 |
encuentren los builds de la aplicacion, por ejemplo: |
150 |
|
151 |
http://downloads.gvsig.org/download/gvsig-desktop/dists/2.1.0/builds |
152 |
|
153 |
Los ficheros a subir, por ejemplo para la 2.1.0 build 2202 serian: |
154 |
|
155 |
- gvSIG-desktop-2.1.0-2202-devel-win-x86-online.exe (binarios para windows) |
156 |
- gvSIG-desktop-2.1.0-2202-devel-lin-x86-online.bin (binarios para linux) |
157 |
- gvSIG-desktop-2.1.0-2202-devel-all-x86-online.zip (zip multiplataforma) |
158 |
- gvSIG-desktop-2.1.0-2202-devel-all-all.gvspks (paquetes a usar en la instalacion) |
159 |
- gvSIG-desktop-2.1.0-2202-devel-all-all-pool.zip (paquetes para incluir en el pool) |
160 |
|
161 |
- Si despues de ejecutar el "release:prepare" y antes de llegar aqui se produce algun error, |
162 |
ejecutaremos un "mvn release:rollback" para deshacer los cambios. |
163 |
|
164 |
A pesar de ello, se habra quedado creado el tag en el SVN, que podemos ir y eliminar a mano. |
165 |
|
166 |
- "mvn release:perform 2>&1 | tee /tmp/mvn-release-perform.log" |
167 |
|
168 |
Si todo habia ido bien, al ejecutar esto, se subiran los artefactos maven de la distribucion al |
169 |
repositorio de maven, y se crearan los sites de todos los proyectos para esta version. |
170 |
|
171 |
Los artefactos con la nueva version en SNAPSHOT no se habran compilado, ni instalado o |
172 |
desplegado. Si consideramos oportuno disponer en el repo de maven de los |
173 |
nuevos artefactos en SNAPSHOT deberemos hacerlo a mano tras terminar todo el proceso. |
174 |
|
175 |
Con esto se deberia haber completado la generacion de la distribucion. Ahora faltaria |
176 |
actualizar el repositorio de plugins de gvSIG. |
177 |
|
178 |
|
179 |
Notas pendientes |
180 |
================= |
181 |
|
182 |
Puede ser interesante mirar el plugin |
183 |
|
184 |
http://mojo.codehaus.org/versions-maven-plugin/ |
185 |
|
186 |
|
187 |
A tener en cuenta |
188 |
-------------------- |
189 |
|
190 |
- Andami se lleva ahora muchas mas dependencias que antes, entre otras el |
191 |
api de la libreria de proyecciones (se lo lleva org.gvsig.ui) pero como |
192 |
no se lleva una implementacion peta en la inicializacion. De momento he |
193 |
puesto un exclude de org.gvsig.projection en el assembly. |
194 |
|
195 |
- Los snappers que hay en appgvsig dependen de jts. |
196 |
Habria que ver de cambiar su implementacion para que usen el API |
197 |
de la libreria de geometrias y eliminar la dependencia de compilacion |
198 |
de appgvsig hacia jts del pom. |
199 |
|
200 |
- TangentPointSnapper |
201 |
- PixelSnapper |
202 |
- MediumPointSnapper |
203 |
- PerpendicularPointSnapper |
204 |
- NearestPointSnapper |
205 |
|
206 |
- La clase Line2DOffset en org.gvsig.symbology.lib.impl hace uso intensivo |
207 |
de JTS. Ver si es viable crear una operacion sobre la geometria que haga |
208 |
lo que hace esa clase. |
209 |
|
210 |
- En org.gvsig.symbology.swing se hace uso de funcionalidades de andami. |
211 |
|
212 |
- Hay que repasar la asignacion de iconos a las capas. Ver la extension |
213 |
de extDWG, pero puede afectar a otras. |
214 |
|
215 |
- Ver que pasa con las clases de DAL FeatureQueryOrder y DefaultFeatureComparator. |
216 |
De momento he hecho una chapuza y he incrustado DefaultFeatureComparator |
217 |
dentro de FeatureQueryOrder en el API. |
218 |
|
219 |
- En la libreria de geometrias, la operacion Equals y el metodo equals de |
220 |
Geometry hacen cosas distintas. En mapcontext, EqualsGeometryEvaluator, |
221 |
he sustituido la llamada a la operacion por el metodo. |
222 |
|
223 |
- El proyecto org.gvsig.new.layer.lib.impl tiene una dependencia con |
224 |
org.gvsig.projection.cresques.ui |
225 |
|
226 |
- En PluginServices, en el metodo getPluginHomeFolder, habria que hacer que |
227 |
si es nuevo copie los contenidos de los AlternativeNames a el. De esta |
228 |
forma seguira funcionanado con la configuracion que tuviese el usuario |
229 |
aunque se renombre un plugin. |
230 |
|
231 |
|