Empaquetado del proyecto de microservicio Springboot. Lo que necesita saber, los problemas encontrados en el paquete mvn del proyecto de múltiples módulos springboot: hay dependencias pero no se pueden encontrar los símbolos

Referencia de: https://blog.csdn.net/SnailMann/article/details/81710461

Antes, estaba practicando un proyecto de microservicio springcloud, el proyecto es muy simple, una clase principal, un registro, un proveedor y un consumidor. Pero una vez escrito el proyecto, el paquete del proyecto siempre falla. Siempre pregunte a la clase de entidad java si tiene un problema. Estuve enredado durante mucho tiempo y finalmente lo resolví, aquí hay un resumen.

¿Cuál es el problema? Permítanme dar más detalles. El problema es aproximadamente así:

Tengo un proyecto SpringCloud y cada microservicio es un proyecto SpringBoot. Uno de los proyectos de pago depende de un proyecto de utilidad común. Tanto el proyecto de pago como el proyecto común pertenecen al módulo secundario del mismo proyecto principal.

  • En este momento, quiero implementar el proyecto SpringCloud integrado en el servidor. En este momento, necesito abrir el paquete jar, poner el jar en el servidor e iniciar el proyecto SpringBoot a través del comando java -jar * .jar
  • En primer lugar, debo ingresar mvn clean install -DskipTests = true para empaquetar el módulo común en el almacén local
  • Luego empaqueto el proyecto de pago mvn clean package -DskipTests = true
  • Luego, el error del comando mvn (no se puede encontrar el símbolo) y el pago no puede encontrar la clase en común, por lo que se informa un error y no se puede empaquetar

El motivo de mi análisis:

  • Primero verifiqué si el pom del proyecto principal se perdió el proyecto común del módulo y descubrí que no. El pago y el común son ambos módulos secundarios del mismo proyecto principal, y el <parent> de los proyectos secundarios también son el mismo proyecto principal.
  • Luego verifiqué si había un problema con la ruta común o el número de versión en el que se basaba el pago y descubrí que era correcto.
  • Luego verifico si el paquete no está marcado en el almacén .m2 o si el paquete está incompleto. Después de la inspección, no encontré nada.
  • Entonces dudé si la configuración de dependencia de pom.xml era un problema, pero el problema del empaquetado fallido de proyectos de múltiples módulos de springboot en Internet no obtuvo ningún resultado.

La solución definitiva:

Esta solución la resolvió un grandullón después de que le pedí ayuda a cierto grupo, muchas gracias por ayudarme a resolver el problema que me molestó toda la tarde. 

è¿éåå¾çæè¿ °

Mi problema es que spring-boot-maven-pluginlos complementos se importan en el pom del proyecto común , lo que hace que el paquete jar común se escriba de manera diferente al paquete jar habitual. Cuando el paquete jar depende de otros módulos, parecerá que otros módulos no pueden acceder al jar.

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

Por lo tanto, si el módulo de su proyecto solo se usa como una dependencia del paquete jar, y no como un proyecto de inicio de SpringBoot, no spring-boot-maven-pluginconfigure el complemento en el pom del proyecto. El paquete jar escrito cuando se importa el complemento es diferente del paquete jar escrito sin el complemento. Recuerda

para resumir

En un proyecto de microservicio distribuido, agregue las dependencias anteriores al archivo pom del proyecto que debe iniciarse. Las clases de entidad, clases de herramientas, etc. no necesitan iniciarse, solo deben heredarse y los servicios de los módulos dependientes no necesitan lo anterior confiar. No es necesario agregar las dependencias anteriores en el proyecto principal. Siempre que todos hereden directa o indirectamente el proyecto principal, el paquete del proyecto principal empaquetará otros servicios dependientes.

Supongo que te gusta

Origin blog.csdn.net/wjg1314521/article/details/105076927
Recomendado
Clasificación