Open UserPanic opened 5 months ago
Hola
Yo creo que cualquier repositorio debería poderse compilar con descargar y mvn clean install, pero es una batalla que ya doy por perdida.
Te indico los pasos que debes seguir para poder compilarlo, aunque dependiendo de la ventana temporal puede no funcionar.
Necesitas openjdk 8 u 11 (yo he probado hoy con la 11) Si usas la 17 o superior algún modulo no compila.
Como el proyecto suele apuntar a versiones "SNAPSHOT" en lugar de versiones publicadas en maven central, normalmente tendremos que compilar e instalar manualmente en nuestro equipo las siguientes:
git clone https://github.com/ctt-gob-es/jmulticard.git
cd jmulticard
mvn -Dmaven.test.skip=true clean package install
git clone https://github.com/ctt-gob-es/clienteafirma-external.git
cd clienteafirma-external
mvn clean package install -Dmaven.test.skip=true
aqui (a dia 17 de junio de 2024) hay un pequeño conflicto. tienes que editar afirma-lib-itext/pom.xml, poner de version 1.0.6-SNAPSHOT, y repetir
mvn clean package install -Dmaven.test.skip=true
git clone https://github.com/ctt-gob-es/clienteafirma.git
cd clienteafirma
mvn clean package -Dmaven.test.skip=true
... Could not resolve dependencies for project es.gob.afirma:afirma-crypto-pdf:jar:1.9-SNAPSHOT: Could not find artifact es.gob.afirma.lib:afirma-lib-itext:jar:1.0.6-SNAPSHOT ...
@UserPanic
Edito mensaje: Estas instrucciones no funcionan. Dejo el mensaje porque ha tenido contestación.
Prueba a copiar este repositorio en otra ubicación de tu equipo: https://github.com/ctt-gob-es/clienteafirma-external
Luego sitúate en él y genera los productos con esta orden:
mvn clean install -Denv=env-deploy
Después vuelve al repositorio clienteafirma e inténtalo de nuevo. Puedes usar:
mvn clean install -DskipTests -Denv=install
Hola
Yo creo que cualquier repositorio debería poderse compilar con descargar y mvn clean install, pero es una batalla que ya doy por perdida.
Te indico los pasos que debes seguir para poder compilarlo, aunque dependiendo de la ventana temporal puede no funcionar.
Necesitas openjdk 8 u 11 (yo he probado hoy con la 11) Si usas la 17 o superior algún modulo no compila.
Paso a paso
Compilar e instalar dependencias
Como el proyecto suele apuntar a versiones "SNAPSHOT" en lugar de versiones publicadas en maven central, normalmente tendremos que compilar e instalar manualmente en nuestro equipo las siguientes:
- jmulticard
clienteafirma-external
- jmimemagic
- itext
- juniversalchardet
- afirma-lib-oro
jmulticard
git clone https://github.com/ctt-gob-es/jmulticard.git cd jmulticard mvn -Dmaven.test.skip=true clean package install
clienteafirma-external
git clone https://github.com/ctt-gob-es/clienteafirma-external.git cd clienteafirma-external mvn clean package install -Dmaven.test.skip=true
aqui (a dia 17 de junio de 2024) hay un pequeño conflicto. tienes que editar afirma-lib-itext/pom.xml, poner de version 1.0.6-SNAPSHOT, y repetir
mvn clean package install -Dmaven.test.skip=true
Compilar el proyecto clientefirma
git clone https://github.com/ctt-gob-es/clienteafirma.git cd clienteafirma mvn clean package -Dmaven.test.skip=true
voy a probar, uso java la versión 11, voy a probar y te digo.
Hola
Yo creo que cualquier repositorio debería poderse compilar con descargar y mvn clean install, pero es una batalla que ya doy por perdida.
Te indico los pasos que debes seguir para poder compilarlo, aunque dependiendo de la ventana temporal puede no funcionar.
Necesitas openjdk 8 u 11 (yo he probado hoy con la 11) Si usas la 17 o superior algún modulo no compila.
Paso a paso
Compilar e instalar dependencias
Como el proyecto suele apuntar a versiones "SNAPSHOT" en lugar de versiones publicadas en maven central, normalmente tendremos que compilar e instalar manualmente en nuestro equipo las siguientes:
- jmulticard
clienteafirma-external
- jmimemagic
- itext
- juniversalchardet
- afirma-lib-oro
jmulticard
git clone https://github.com/ctt-gob-es/jmulticard.git cd jmulticard mvn -Dmaven.test.skip=true clean package install
clienteafirma-external
git clone https://github.com/ctt-gob-es/clienteafirma-external.git cd clienteafirma-external mvn clean package install -Dmaven.test.skip=true
aqui (a dia 17 de junio de 2024) hay un pequeño conflicto. tienes que editar afirma-lib-itext/pom.xml, poner de version 1.0.6-SNAPSHOT, y repetir
mvn clean package install -Dmaven.test.skip=true
Compilar el proyecto clientefirma
git clone https://github.com/ctt-gob-es/clienteafirma.git cd clienteafirma mvn clean package -Dmaven.test.skip=true
me ha funcionado, donde genera el AutoFirma.jar? porque no lo encuentro
... Could not resolve dependencies for project es.gob.afirma:afirma-crypto-pdf:jar:1.9-SNAPSHOT: Could not find artifact es.gob.afirma.lib:afirma-lib-itext:jar:1.0.6-SNAPSHOT ...
@UserPanic
Prueba a copiar este repositorio en otra ubicación de tu equipo: https://github.com/ctt-gob-es/clienteafirma-external
Luego sitúate en él y genera los productos con esta orden:
mvn clean install -Denv=env-deploy
Después vuelve al repositorio clienteafirma e inténtalo de nuevo. Puedes usar:
mvn clean install -DskipTests -Denv=install
al hacerlo así me lanza lo siguiente [ERROR] Failed to execute goal on project afirma-ui-simpleafirma: Could not resolve dependencies for project es.gob.afirma:afirma-ui-simpleafirma:jar:1.9-SNAPSHOT: The following artifacts could not be resolved: es.gob.afirma:afirma-ui-simpleafirma-plugins:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-ui-simpleafirma-plugins-manager:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-ui-core-jse:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-ui-core-jse-keystores:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-keystores-filters:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-keystores-mozilla:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-crypto-pdf:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-crypto-xades:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-crypto-ooxml:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-crypto-xadestri-client:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-crypto-xmlsignature:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-crypto-validation:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-core-massive:jar:1.9-SNAPSHOT, es.gob.afirma:afirma-ui-simpleafirma-configurator-common:jar:1.9-SNAPSHOT: Could not find artifact es.gob.afirma:afirma-ui-simpleafirma-plugins:jar:1.9-SNAPSHOT -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn
me ha funcionado, donde genera el AutoFirma.jar? porque no lo encuentro
Hola
El comando para compilar todos los modules (incluyendo autofirma.jar) es:
mvn clean package -Dmaven.test.skip=true -Denv=env-deploy
pero actualmente falla, te lo pasé recortado porque la otra version compila menos módulos y con suerte ninguno de ellos falla, pero si necesitas el autofirma.jar completo no te vale
Habría que revisar como tiene definidas las dependencias el proyecto y corregirlas, pero vamos, eso es cosa de los mantenedores
@UserPanic:
Si te sirve con compilar la versión 1.8.3 prueba estas instrucciones:
git clone --depth 1 --branch v1.8.3 https://github.com/ctt-gob-es/clienteafirma.git
cd clienteafirma/
mvn clean install -DskipTests
mvn clean install -DskipTests -Denv=install
Solo Linux:
ls afirma-simple/target/AutoFirma.jar
fatal: unable to access 'https://github.com/ctt-gob-es/clienteafirma.git/': Could not resolve host: github.com
fatal: unable to access 'https://github.com/ctt-gob-es/clienteafirma.git/': Could not resolve host: github.com
Quizá tengas mal configurado el proxy para git. Prueba esto:
git config --global --unset http.proxy
me sigue dando el mismo fallo
¿Te funciona este comando:
git clone https://github.com/ctt-gob-es/clienteafirma.git
?
si
¿Te funciona este comando:
git clone https://github.com/ctt-gob-es/clienteafirma.git
?
si
acabo de dar con el fallo estaba andando una vw y tenía la conexión como puente
pero me da este error Failed to execute goal on project afirma-crypto-pdf: Could not resolve dependencies for project es.gob.afirma:afirma-crypto-pdf:jar:1.8.3: Could not find artifact es.gob.afirma.lib:afirma-lib-itext:jar:1.6 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
pero me da este error Failed to execute goal on project afirma-crypto-pdf: Could not resolve dependencies for project es.gob.afirma:afirma-crypto-pdf:jar:1.8.3: Could not find artifact es.gob.afirma.lib:afirma-lib-itext:jar:1.6 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
Borra los repositorios locales que hayas creado en pruebas anteriores e intenta con las instrucciones que puse en https://github.com/ctt-gob-es/clienteafirma/issues/399#issuecomment-2180361390
me sigue dando el mismo error ERROR] Failed to execute goal on project afirma-crypto-pdf: Could not resolve dependencies for project es.gob.afirma:afirma-crypto-pdf:jar:1.8.3: Could not find artifact es.gob.afirma.lib:afirma-lib-itext:jar:1.6 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
me salta este error al purgar los repos locales ailed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:purge-local-repository (default-cli) on project afirma-core-keystores: Failed to refresh project dependencies for: es.gob.afirma:afirma-core-keystores:jar:1.8.3: required artifacts missing:
lo he conseguido compilar, @joaldere he hecho limpieza general de todo y vuelto a empezar, he compilado jmulticard y el clienteafirma-external como ha indicado @albfernandez a excepción de no cambiar la versión, sino dejarla tal cual y tus pasos y todo perfecto, lástima que no se pueda hacer todavía la 1.9 para cacharrear.
lo he conseguido compilar, @joaldere he hecho limpieza general de todo y vuelto a empezar, he compilado jmulticard y el clienteafirma-external como ha indicado @albfernandez a excepción de no cambiar la versión, sino dejarla tal cual y tus pasos y todo perfecto, lástima que no se pueda hacer todavía la 1.9 para cacharrear.
Te dejo unas instrucciones para construir en Linux la versión 1.9 de AutoFirma.jar a partir de las fuentes de fecha 15-03-2024 (Son las últimas a fecha de hoy):
mkdir autofirma-repos
cd autofirma-repos
git clone https://github.com/ctt-gob-es/clienteafirma-external.git
cd clienteafirma-external/
git checkout cd4447d7ecd53279f2f70fbff13a2d0a3d718768
mvn clean install -DskipTests
cd ..
git clone https://github.com/ctt-gob-es/clienteafirma.git
cd clienteafirma
git checkout d5868a024f34091a0241c3682966cbaff50a1792
mvn clean install -DskipTests
mvn clean install -DskipTests -Denv=install
ls afirma-simple/target/AutoFirma.jar
voy a probar @joaldere muchas gracias
@joaldere me lo ha generado sin problema, como podría crear ahora el deb?
@joaldere me lo ha generado sin problema, como podría crear ahora el deb?
Las especificaciones de los archivos .deb y las herramientas que los generan son externas a los repositorios de ctt-gob-es por lo que hay múltiples maneras de generar un archivo .deb correcto.
Si te refieres al archivo .deb que se generará según la documentación del proyecto cliente@firma necesitarás tener instaladas algunas herramientas en tu sistema linux:
Con esas herramientas instaladas y partiendo de la situación en la que acabaste después de las instrucciones en https://github.com/ctt-gob-es/clienteafirma/issues/399#issuecomment-2181004348 deberias estar posicionado en el directorio clienteafirma.
Para generar el archivo .deb deberían servirte estas otras instrucciones:
cd afirma-simple-installer/linux/instalador_deb/
cp ../../../afirma-simple/target/AutoFirma.jar src/usr/lib/AutoFirma/
cp ../../../afirma-ui-simple-configurator/target/AutoFirmaConfigurador.jar src/usr/lib/AutoFirma/
./generar_instalador.sh
ls AutoFirma_1_9_0.deb
@joaldere me lo ha generado sin problema, como podría crear ahora el deb?
Las especificaciones de los archivos .deb y las herramientas que los generan son externas a los repositorios de ctt-gob-es por lo que hay múltiples maneras de generar un archivo .deb correcto.
Si te refieres al archivo .deb que se generará según la documentación del proyecto cliente@firma necesitarás tener instaladas algunas herramientas en tu sistema linux:
- fakeroot
- dpkg
Con esas herramientas instaladas y partiendo de la situación en la que acabaste después de las instrucciones en #399 (comment) deberias estar posicionado en el directorio clienteafirma.
Para generar el archivo .deb deberían servirte estas otras instrucciones:
cd afirma-simple-installer/linux/instalador_deb/ cp ../../../afirma-simple/target/AutoFirma.jar src/usr/lib/AutoFirma/ cp ../../../afirma-ui-simple-configurator/target/AutoFirmaConfigurador.jar src/usr/lib/AutoFirma/ ./generar_instalador.sh ls AutoFirma_1_9_0.deb
Genial voy a probar
el proceso para generar para windows? porque sigo el doc pero no veo que el jar de AutoFIrma esté en la carpeta
el proceso para generar para windows? porque sigo el doc pero no veo que el jar de AutoFIrma esté en la carpeta
Supongo que te refieres a generar instaladores de Autofirma para Windows porque el archivo .jar que se utiliza en Windows es el mismo que se utiliza en Linux y en cualquier otro sistema que soporte java.
El archivo .jar de Autofirma hay que copiarlo manualmente al directorio “jar” del módulo afirma-simple-installer.
¿Qué documento has seguido?
He seguido el que está en el docs https://github.com/ctt-gob-es/clienteafirma-docs/blob/master/AF_Instalador%20Windows.docx , pero el launch4j no me tira, teniendo en cuenta que lo estoy haciendo desde linux, no se si es por eso o no, pero me da error
He seguido el que está en el docs https://github.com/ctt-gob-es/clienteafirma-docs/blob/master/AF_Instalador%20Windows.docx...
En el documento que enlazas pone como requisito para construir los instaladores estar en un sitema Windows:
Aunque consiguieras que Launch4j funcionara, las otras 2 herramientas que tienes que usar (WiX y/o NSIS) solo están disponibles para Windows.
fallo mio, pensaba con el linux podría generarlos.... pruebo pues ejje, muchas gracias
En el entorno windows me sigue apareciendo el mismo error
Prueba a usar una versión mas antigua de launch4j en lugar de la 3.50 que es la mas actual. En el manual pone un enlace a la 3.8 pero ya no está disponible para descargar. Prueba con la 3.14: https://sourceforge.net/projects/launch4j/files/launch4j-3/3.14/
Otra opción sería parchear los archivos de configuración (archivos .xml).
Si quieres compilar el master de git tal cual esta ahora lo mas sencillo es lo siguiente.
mvn clean install -Dmaven.test.skip=true
mvn clean install -Dmaven.test.skip=true
y cuando termine mvn clean install -Denv=install -Dmaven.test.skip=true
.jar
en /afirma-simple/target/AutoFirma.jar
.A partir de ahí yo te aconsejo que para lanzarlo en Linux utilices este script. A lo mejor tienes que tocar la ultima linea para decirle donde esta el java
y el jar
ya que en el script esta puesto /usr/lib/jvm/java-11-openjdk/bin/java -jar /usr/share/java/autofirma/autofirma.jar
y puede que no coincida con tu sistema. Por ejemplo si tu java
esta en /usr/bin/java
y el jar
lo has dejado en /opt/autofirma
sería poner /usr/bin/java -jar /opt/autofirma/AutoFirma.jar
(ojo con las mayúsculas y las minúsculas).
Y bueno, todo esto con Java 11, con otra versión no te va a funcionar.
Buenas tardes, estoy intentando compilar pero me da fallo [ERROR] Failed to execute goal on project afirma-crypto-pdf: Could not resolve dependencies for project es.gob.afirma:afirma-crypto-pdf:jar:1.9-SNAPSHOT: Could not find artifact es.gob.afirma.lib:afirma-lib-itext:jar:1.0.6-SNAPSHOT -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :afirma-crypto-pdf
root@penguin:/home/userj/git/clienteafirma#