Saltar al contenido

¿Cómo agregar una dependencia a un Spring Boot Jar en otro proyecto?

Después de mucho trabajar ya hallamos el arreglo de esta obstáculo que algunos de nuestros usuarios de nuestra web tienen. Si quieres aportar algo más no dejes de compartir tu información.

Solución:

De forma predeterminada, Spring Boot vuelve a empaquetar su JAR en un JAR ejecutable, y lo hace poniendo todas sus clases dentro BOOT-INF/classesy todas las bibliotecas dependientes dentro BOOT-INF/lib. La consecuencia de crear este JAR gordo es que ya no puede usarlo como dependencia para otros proyectos.

Del clasificador de reenvasado personalizado:

Por defecto, el repackage Goal reemplazará el artefacto original con el reempaquetado. Ese es un comportamiento sensato para los módulos que representan una aplicación, pero si su módulo se usa como una dependencia de otro módulo, debe proporcionar un clasificador para el reempaquetado.

La razón de esto es que las clases de aplicación están empaquetadas en BOOT-INF/classes para que el módulo dependiente no pueda cargar las clases de un jar reempaquetado.

Si desea mantener el artefacto principal original para usarlo como una dependencia, puede agregar un classifier en el repackage configuración de objetivos:


  org.springframework.boot
  spring-boot-maven-plugin
  1.4.1.RELEASE
  
    
      
        repackage
      
      
        exec
      
    
  

Con esta configuración, Spring Boot Maven Plugin creará 2 JAR: el principal será el mismo que un proyecto Maven habitual, mientras que el segundo tendrá el clasificador adjunto y será el JAR ejecutable.

La respuesta de Tunaki es correcta pero no funciona en Bota de primavera 2.

Bota de primavera 1.x

  
    org.springframework.boot
    spring-boot-maven-plugin
    1.5.20.RELEASE
    
      
        
          repackage
        
        
          exec
        
      
    
    ...
  

Lee mas


Bota de primavera 2.x

Si estás usando spring-boot-starter-parentla repackage el objetivo se ejecuta automáticamente en una ejecución con id repackage. En esa configuración, solo se debe especificar la configuración como se muestra en el siguiente ejemplo:

  
    org.springframework.boot
    spring-boot-maven-plugin
    
      
        repackage
        
          exec
        
      
    
    ...
  

Lee mas

Para Spring Boot 2, la respuesta de @Tunaki debe modificarse un poco de acuerdo con la documentación si spring-boot-starter-parent se utiliza como padre:


    org.springframework.boot
    spring-boot-maven-plugin
    
      
        repackage
        
          exec
        
      
    

Toma nota de los extras repackage necesario sobrescribir para ejecutar desde el spring-boot-starter-parent.

Si sostienes algún recelo o disposición de ascender nuestro artículo eres capaz de escribir una glosa y con deseo lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *