亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Intellij Maven java.lang.NoClassDefFoundError with

Intellij Maven java.lang.NoClassDefFoundError with

慕田峪9158850 2022-10-26 17:23:10
我正在嘗試運行一個非常簡單的程序,它在運行時需要一個類:import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;public class App {    public static void main(String[] args) {        YAMLFactory yf =  new YAMLFactory();    }}它正在編譯,但我得到了Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/dataformat/yaml/YAMLFactory    at App.main(App.java:6)Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.dataformat.yaml.YAMLFactory運行罐子。我同時使用maven-assembly-plugin并maven-shade-plugin包含對 jar 的依賴項,它們都不適合我。我的 pom.xml:
查看完整描述

1 回答

?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

您可以像這樣配置您的 Maven 程序集插件(您不需要其他插件)。這會將所有 .class 文件放入您的 jar 中。

mvn clean install生成你的jar,然后java -jar target/yourJar-jar-with-dependencies.jar執行。有關更多詳細信息,請查看http://maven.apache.org/plugins/maven-assembly-plugin/

我給你留了一個改進的 maven 3 的 pom 文件(實際上問題出在這個版本的 maven 上不可用的 pluginManagement 標簽)。您也不需要 maven jar 插件。

請找到這兩個模式以獲取完整的詳細信息

https://maven.apache.org/xsd/maven-v3_0_0.xsd

http://maven.apache.org/xsd/maven-4.0.0.xsd

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>


    <groupId>App</groupId>

    <artifactId>App</artifactId>

    <version>1.0-SNAPSHOT</version>


    <properties>

        <maven.compiler.source>1.8</maven.compiler.source>

        <maven.compiler.target>1.8</maven.compiler.target>

    </properties>

    <dependencies>

        <dependency>

            <groupId>org.json</groupId>

            <artifactId>json</artifactId>

            <version>20180813</version>

        </dependency>

        <dependency>

            <groupId>com.fasterxml.jackson.core</groupId>

            <artifactId>jackson-core</artifactId>

            <version>2.9.8</version>

            <scope>compile</scope>

        </dependency>


        <dependency>

            <groupId>com.fasterxml.jackson.core</groupId>

            <artifactId>jackson-annotations</artifactId>

            <version>2.9.8</version>

        </dependency>


        <dependency>

            <groupId>com.fasterxml.jackson.core</groupId>

            <artifactId>jackson-databind</artifactId>

            <version>2.9.8</version>

        </dependency>


        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml -->

        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml -->

        <dependency>

            <groupId>com.fasterxml.jackson.dataformat</groupId>

            <artifactId>jackson-dataformat-yaml</artifactId>

            <version>2.9.8</version>

            <scope>compile</scope>

        </dependency>




    </dependencies>

    <build>

            <plugins>

                <plugin>

                    <artifactId>maven-assembly-plugin</artifactId>

                    <version>3.1.0</version>

                    <configuration>

                        <finalName>your-jar-1.0</finalName>

                        <archive>

                            <manifest>

                                <addClasspath>true</addClasspath>

                                <mainClass>App</mainClass>

                            </manifest>

                        </archive>

                        <descriptorRefs>

                            <descriptorRef>jar-with-dependencies</descriptorRef>

                        </descriptorRefs>

                    </configuration>

                    <executions>

                        <execution>

                            <id>make-assembly</id>

                            <phase>package</phase>

                            <goals>

                                <goal>single</goal>

                            </goals>

                        </execution>

                    </executions>

                </plugin>

                <!-- Compile in Java 1.8 -->

                <!--<plugin>-->

                    <!--&lt;!&ndash; Build an executable JAR &ndash;&gt;-->

                    <!--<groupId>org.apache.maven.plugins</groupId>-->

                    <!--<artifactId>maven-jar-plugin</artifactId>       -->

                    <!--<version>3.1.0</version>-->

                    <!--<configuration>-->

                        <!--<archive>-->

                            <!--<manifest>-->

                                <!--<mainClass>App</mainClass>-->

                                <!--<addClasspath>true</addClasspath>-->

                            <!--</manifest>-->

                        <!--</archive>-->

                    <!--</configuration>-->

                <!--</plugin>-->

            </plugins>

    </build>


</project>


查看完整回答
反對 回復 2022-10-26
  • 1 回答
  • 0 關注
  • 274 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號