Excepción ClassNotFound cuando se utiliza Jenkins y experto

DevBear:

Necesito tu ayuda. Sólo estoy acostumbrando a Java y he terminado mi primer hito en mi proyecto privado. Ahora quería utilizar este hito como una oportunidad para hacer frente a Jenkins y CI.

Sin embargo, me encuentro con problemas cuando se ejecuta el programa a través de Maven en Jenkins. Maven siempre me produce una excepción ClassNotFound en el tratamiento de la tubería Jenkins. Pero cuando comienzo del programa a nivel local en IntelliJ se ejecuta sin problemas.

Por lo que yo puedo ver que no puede encontrar un POJO que utilizo para analizar XML utilizando JAXB.

¿Por qué no encontrar una clase cuando construyo utilizando Jenkins pero encuentra todo cuando trabajo a nivel local, el POM es el mismo.

Este es mi POM:

<groupId>groupId</groupId>
<artifactId>rss_backend</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.2.11</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.2.11</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>2.2.11</version>
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>dev.morphia.morphia</groupId>
        <artifactId>core</artifactId>
        <version>1.5.8</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <!-- Build an executable JAR -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.0.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>projects.rss_backend.MainApp</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

y este es el error que consigo cuando se utiliza Jenkins / maven:

The following command runs and outputs the execution of your Java
application (which Jenkins built using Maven) to the Jenkins UI.
+ java -jar target/rss_backend-1.0-SNAPSHOT.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
    at projects.rss_backend.MainApp.main(MainApp.java:20)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 1 more```

¿Tiene una idea de lo que estoy haciendo mal y cómo puedo solucionar el problema?

JF Meier:

jarras normales no contienen dependencias.

Es necesario construir un jar ejecutable como se describe aquí: ¿Cómo puedo crear un JAR ejecutable con dependencias utilizando Maven?

Probablemente no se inició el tarro de IntelliJ con java -jarpero con algún mecanismo IntelliJ que hizo la magia (es decir, la ruta de clase) para usted.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=410115&siteId=1
Recomendado
Clasificación