En esta prueba simplemente generaré la versión de 64 bits del instalador para Windows.
1 - Configuración de Maven
La versión de maven que usaré es la 3.5.0 con java 1.8 de 64 bits:>mvn --version Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T21:39:06+02:00) Maven home: C:\Program Files (x86)\Apache Software Foundation\apache-maven-3.5.0\bin\.. Java version: 1.8.0_111, vendor: Oracle Corporation Java home: c:\Program Files\Java\jdk1.8.0_111\jre Default locale: es_ES, platform encoding: Cp1252 OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
No creo que haya problemas por utilizar otra versión cercana.
2 - Descarga de Launch4J
Cuando se tenga el jar de Autofirma se deberá empaquetar (más bien envolver) en un archivo ejecutable de windows. Para ello se necesitará usar la herramienta Launch4J.La versión con la que lo probé es la 3.12, en su modalidad portable: https://sourceforge.net/projects/launch4j/files/launch4j-3/3.12/.
Basta con descargarse el zip y descomprimirlo.
3 - Descarga y configuración de NSIS
Con el exe creado por Launch4J ya se podría ejecutar la aplicación (a falta de un JRE), pero al usuario se le entrega un instalador (wizard) que se encarga de copiar el ejecutable a donde corresponda, crear entradas de registro, registrar la aplicación, etc. Para ello se usa NSIS (Nullsoft Scriptable install System).La versión con la que probé es la 2.5.1, también en modalidad portable: https://sourceforge.net/projects/nsis/files/NSIS%202/2.51/.
Basta con descargarse el zip y descomprimirlo.
Una vez extraído hay que instalar el plugin de NsProcess, versión 1.6.7: http://nsis.sourceforge.net/NsProcess_plugin. Es un zip que contiene varias carpetas:
- Example
- Include
- Plugin
- Source
Hay que copiar el contenido de Include y Plugin a los subdirectorios correspondientes dentro del directorio de instalación de NSIS.
4 - Compilación y empaquetado de jmulticard
Uno de los módulos de @Firma tiene una dependencia con un artefacto del proyecto jmulticard. En el caso concreto de la versión 1.6.2 de @Firma la dependencia es con la versión 1.5-SNAPSHOT de jmulticard (sí amigos, tenemos una release que dependen de un snapshot, un clavo más en el ataúd del clean code).En este caso me descargué directamente y compilé directamente el master: https://github.com/ctt-gob-es/jmulticard.
5 - Compilación y empaquetado de @Firma
Por fin entramos en materia con @Firma. En esta prueba me descargué el tag 1.6.2 del repo principal: https://github.com/ctt-gob-es/clienteafirma.Justo en la versión 1.6.2 hay un bug (o más bien una mala praxis en el desarrollo) y es necesario hacer una pequeña corrección en un fichero pom. Concretamente, en el fichero \afirma-standalone\afirma-ui-standalone\pom.xml se deberá modificar la propiedad afirma.core.version, que vale 1.7-SNAPSHOT a la 1.6 (se ve que el tema de la gestión de versiones todavía no lo tienen muy dominado).
<properties> <project.build.sourceEncoding>utf-8</project.build.sourceEncoding> <afirma.keytool.keystore>${basedir}/afirma.keystore</afirma.keytool.keystore> <afirma.keytool.alias>codesign</afirma.keytool.alias> <afirma.keytool.password>afirma</afirma.keytool.password> <afirma.core.version>1.7-SNAPSHOT</afirma.core.version> </properties>
Una vez hecho esto, y según lo que pone en el propio README del proyecto, la compilación se hará en dos pasos:
- mvn clean install, para generar los módulso básicos y los servicios.
- mvn clean install -Denv=install, para generar los artefactos desplegables y aplicaciones
Completada la instalación, los artefactos más relevantes para generar posteriormente el instalador de Autofirma serán los siguientes:
- \afirma-simple\target\AutoFirma.jar
- \afirma-ui-simple-configurator\target\AutoFirmaConfigurador.jar
6 - Generación del instalador de Autfirma
Para montar el instalador se tienen que ejecutar los siguientes pasos:
- Generación del ejectuable de Autofirma
- Generación del ejecutable del Configurador
- Generación del ejecutable del Command Line
- Generación del instalador de Autofirma
6.1 Generación del ejecutable de Autofirma
Se copiará el archivo Autofirma.jar, creado anteriormente, al directorio \afirma-simple-installer\jar\.Luego se cargará el fichero \afirma-simple-installer\AutoFirma_launch4J_project_64.xml en Launch4J y se lanzará su ejecución.
El resultado será el fichero \afirma-simple-installer\AutoFirma64\AutoFirma.exe
6.2 Generación del ejecutable del Configurador
Se copiará el archivo AutoFirmaConfigurador.jar, creado anteriormente, al directorio \afirma-simple-installer\jar\.Luego se cargará el fichero \afirma-simple-installer\AutoFirma_launch4J_Configurador_project_64.xml en Launch4J y se lanzará su ejecución.
El resultado será el fichero \afirma-simple-installer\AutoFirma64\AutoFirmaConfigurador.exe
6.3 Generación del ejecutable del Command Line
También a partir del AutoFirma.jar, se cargará el fichero \afirma-simple-installer\AutoFirmaCommandLine_launch4J_project_64.xml en Launch4J y se lanzará su ejecución.El resultado será el fichero \afirma-simple-installer\AutoFirma64\AutoFirmaCommandLine.exe
6.4 Generación del instalador de Autofirma
Lo primero será copiar un JRE 1.8 en el directorio \afirma-simple-installer\java64. El instalador incorporará el JRE internamente, de modo que dentro del directorio final de instalación del usuario también se incluirá éste, que será el que utilice en última instancia Autofirma durante su ejecución.Se lanzará la herramienta makensisw.exe que se incluye dentro del directorio de instalación de NSIS. Sobre ella se cargará el fichero \afirma-simple-installer\AutoFirma_NSIS_project_EXE_64.nsi y se lanzará la creación del instalador.
El resultado final será el fichero \afirma-simple-installer\AutoFirma64\AutoFirma_64_v1_6_2_installer.exe.
Por fin hemos conseguido el instalador!!
No hay comentarios:
Publicar un comentario