ctt-gob-es / clienteafirma

Cliente @firma
http://administracionelectronica.gob.es/ctt/clienteafirma
256 stars 121 forks source link

al intentan compilar falla #399

Open UserPanic opened 5 months ago

UserPanic commented 5 months ago

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#

albfernandez commented 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.

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

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 
joaldere commented 5 months ago

... 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

UserPanic commented 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.

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.

UserPanic commented 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.

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

UserPanic commented 5 months ago

... 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 -rf :afirma-ui-simpleafirma

albfernandez commented 5 months ago

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

joaldere commented 5 months ago

@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
UserPanic commented 5 months ago

fatal: unable to access 'https://github.com/ctt-gob-es/clienteafirma.git/': Could not resolve host: github.com

joaldere commented 5 months ago

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
UserPanic commented 5 months ago

me sigue dando el mismo fallo

joaldere commented 5 months ago

¿Te funciona este comando:

git clone https://github.com/ctt-gob-es/clienteafirma.git

?

UserPanic commented 5 months ago

si

¿Te funciona este comando:

git clone https://github.com/ctt-gob-es/clienteafirma.git

?

si

UserPanic commented 5 months ago

acabo de dar con el fallo estaba andando una vw y tenía la conexión como puente

UserPanic commented 5 months ago

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]

joaldere commented 5 months ago

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

UserPanic commented 5 months ago

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]

UserPanic commented 5 months ago

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:

UserPanic commented 5 months ago

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.

joaldere commented 5 months ago

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
UserPanic commented 5 months ago

voy a probar @joaldere muchas gracias

UserPanic commented 5 months ago

@joaldere me lo ha generado sin problema, como podría crear ahora el deb?

joaldere commented 5 months ago

@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
UserPanic commented 5 months ago

@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

UserPanic commented 5 months ago

el proceso para generar para windows? porque sigo el doc pero no veo que el jar de AutoFIrma esté en la carpeta

joaldere commented 5 months ago

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?

UserPanic commented 5 months ago

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 Screenshot_20240625_205550

joaldere commented 5 months ago

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:

imagen

Aunque consiguieras que Launch4j funcionara, las otras 2 herramientas que tienes que usar (WiX y/o NSIS) solo están disponibles para Windows.

UserPanic commented 5 months ago

fallo mio, pensaba con el linux podría generarlos.... pruebo pues ejje, muchas gracias

UserPanic commented 5 months ago

En el entorno windows me sigue apareciendo el mismo error

joaldere commented 4 months ago

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).

ogarcia commented 4 months ago

Si quieres compilar el master de git tal cual esta ahora lo mas sencillo es lo siguiente.

  1. Descargas este commit de las librerías externas https://github.com/ctt-gob-es/clienteafirma-external/archive/cd4447d7ecd53279f2f70fbff13a2d0a3d718768.zip
  2. Lo compilas con la orden mvn clean install -Dmaven.test.skip=true
  3. Descargas el master de clienteafirma (te lo pongo con el commit por si mañana se les da por subir alguna cosa nueva): https://github.com/ctt-gob-es/clienteafirma/archive/d5868a024f34091a0241c3682966cbaff50a1792.zip
  4. Lo compilas ejecutando mvn clean install -Dmaven.test.skip=true y cuando termine mvn clean install -Denv=install -Dmaven.test.skip=true.
  5. Una vez que termine deberías tener el 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.