Resolución de dependencia a través del complemento Shade para NoClassDefFoundError
En una primera experiencia con Maven, pueden surgir inconsistencias entre Eclipse y el uso de la línea de comandos debido a gestión de dependencia. A pesar de la creación exitosa del proyecto Maven y la adición de dependencias dentro de Eclipse, la ejecución del proyecto a través de la línea de comando puede generar un error NoClassDefFoundError.
De forma predeterminada, Maven empaqueta las dependencias por separado y no las incluye en el archivo JAR compilado. Esta omisión hace que Java VM falle al intentar localizar clases de biblioteca durante la ejecución.
En lugar de agregar bibliotecas manualmente al classpath, maven-shade-plugin proporciona una solución más eficiente. Crea un "uber-JAR" que combina clases de aplicación con el código de biblioteca requerido.
Para implementar esto, agregue la siguiente configuración de complemento a su POM:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin>
Después de agregar esta configuración, vuelva a ejecutar los siguientes comandos:
$ mvn package $ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App
Para opciones de configuración avanzadas, como especificar archivos JAR incluidos o un archivo JAR ejecutable, consulte la sección "Ejemplos" en el sitio web maven-shade-plugin.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3