Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

al intentan compilar falla #399

Open
UserPanic opened this issue Jun 17, 2024 · 31 comments
Open

al intentan compilar falla #399

UserPanic opened this issue Jun 17, 2024 · 31 comments

Comments

@UserPanic
Copy link

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
Copy link
Contributor

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 

@joaldere
Copy link

joaldere commented Jun 17, 2024

...
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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

...
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
Copy link
Contributor

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
Copy link

@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
Copy link
Author

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

@joaldere
Copy link

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
Copy link
Author

me sigue dando el mismo fallo

@joaldere
Copy link

¿Te funciona este comando:

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

?

@UserPanic
Copy link
Author

si

¿Te funciona este comando:

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

?

si

@UserPanic
Copy link
Author

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

@UserPanic
Copy link
Author

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
Copy link

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 #399 (comment)

@UserPanic
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link

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
Copy link
Author

voy a probar @joaldere muchas gracias

@UserPanic
Copy link
Author

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

@joaldere
Copy link

@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

@UserPanic
Copy link
Author

@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
Copy link
Author

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

@joaldere
Copy link

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
Copy link
Author

UserPanic commented Jun 25, 2024

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
Copy link

joaldere commented Jun 25, 2024

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
Copy link
Author

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

@UserPanic
Copy link
Author

En el entorno windows me sigue apareciendo el mismo error

@joaldere
Copy link

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
Copy link

ogarcia commented Jul 14, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants