Maven решает проблему зависимости - PullRequest
0 голосов
/ 13 января 2019

Я сделал проект и хотел создать банку из него. После построения артефакта я получаю следующее исключение:

java.lang.NoClassDefFoundError: com / fastxml / jackson / databind / Module java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.Module

Вот мои зависимости в pom.xml:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.9.8</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.8</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310 -->
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
        <version>2.9.8</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.itextpdf/kernel -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>kernel</artifactId>
        <version>7.1.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.itextpdf/forms -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>forms</artifactId>
        <version>7.1.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.itextpdf/pdftest -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>pdftest</artifactId>
        <version>7.1.4</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.itextpdf/pdfa -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>pdfa</artifactId>
        <version>7.1.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.25</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.jfoenix/jfoenix -->
    <dependency>
        <groupId>com.jfoenix</groupId>
        <artifactId>jfoenix</artifactId>
        <version>9.0.8</version>
    </dependency>

</dependencies>

Вот что я попробовал:
1. Я использовал плагин Inforcer, чтобы найти конфликт версий в моих зависимостях.
2. Я отобразил граф дерева зависимостей maven и решил конфликтующие или неудовлетворенные зависимости, отображаемые красными линиями в intellij. График выглядит следующим образом:
граф дерева зависимостей:

enter image description here

Что-то я не так сделал в pom.xml или что-то, что решает проблему исключений?

РЕДАКТИРОВАТЬ: Выход из зависимости mvn: дерево

 --- maven-dependency-plugin:2.8:tree (default-cli) @ medium-software ---
[INFO] mediumSoftware:medium-software:jar:1.0-SNAPSHOT
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.9.8:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.8:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson- 
annotations:jar:2.9.0:compile
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype- 
jsr310:jar:2.9.8:compile
[INFO] +- com.itextpdf:kernel:jar:7.1.4:compile
[INFO] |  +- com.itextpdf:io:jar:7.1.4:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.13:compile
[INFO] +- com.itextpdf:forms:jar:7.1.4:compile
[INFO] |  \- com.itextpdf:layout:jar:7.1.4:compile
[INFO] +- com.itextpdf:pdftest:jar:7.1.4:test
[INFO] |  +- ch.qos.logback:logback-classic:jar:1.1.3:test
[INFO] |  |  \- ch.qos.logback:logback-core:jar:1.1.3:test
[INFO] |  \- junit:junit:jar:4.12:test
[INFO] |     \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- com.itextpdf:pdfa:jar:7.1.4:compile
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.25:test
[INFO] |  \- log4j:log4j:jar:1.2.17:test
[INFO] \- com.jfoenix:jfoenix:jar:9.0.8:compile
[INFO] ------------------------------------------------------------------- 
-----
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------- 
-----
[INFO] Total time: 1.912 s
[INFO] Finished at: 2019-01-13T17:59:48+01:00
[INFO] Final Memory: 11M/47M
[INFO] ------------------------------------------------------------------- 
-----
Process finished with exit code 0

Редактировать: полное исключение:

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:473)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:372)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:941)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:973)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:198)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/Module
    at controller.Helper.Meldungsgenerator.<init>(Meldungsgenerator.java:17)
    at view.Main.start(Main.java:23)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:919)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(PlatformImpl.java:449)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(PlatformImpl.java:418)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:417)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:175)
... 1 more
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.Module
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
... 11 more
Exception running application view.Main

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Спасибо всем за помощь. Моя вина была в том, что я создал артефакт как приложение JavaFX. Я попытался построить его как обычный фляга, и это сработало ...

0 голосов
/ 13 января 2019

Ваш jackson-datatype-jsr310 уже имеет ядро ​​jackson, в нем находится база данных. Так что вы можете прокомментировать ниже:

<!--<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.8</version>
        </dependency>

        &lt;!&ndash; https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind &ndash;&gt;
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.8</version>
        </dependency>-->

И попробуйте построить его. Когда я попробовал это, я оказался ниже дерева зависимостей.

[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.9.8:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-core:jar:2.9.8:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-databind:jar:2.9.8:compile
[INFO] +- com.itextpdf:kernel:jar:7.1.4:compile
[INFO] |  +- com.itextpdf:io:jar:7.1.4:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] +- com.itextpdf:forms:jar:7.1.4:compile
[INFO] |  \- com.itextpdf:layout:jar:7.1.4:compile
[INFO] +- com.itextpdf:pdftest:jar:7.1.4:test
[INFO] |  +- ch.qos.logback:logback-classic:jar:1.2.3:test
[INFO] |  |  \- ch.qos.logback:logback-core:jar:1.2.3:test
[INFO] |  \- junit:junit:jar:4.12:test
[INFO] |     \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- com.itextpdf:pdfa:jar:7.1.4:compile
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.25:test
[INFO] |  \- log4j:log4j:jar:1.2.17:test
[INFO] \- com.jfoenix:jfoenix:jar:9.0.8:compile

Или вы можете исключить jackson-databind из jackson-datatype-jsr310

...