簡體   English   中英

Gradle Java和MongoDB

[英]Gradle Java and MongoDB

我正在嘗試連接到本地MongoDB實例(版本3.2)。 我在build.gradle中指定了一個依賴項,如下所示:

依賴項{編譯'org.mongodb:mongodb-driver:3.3.0'}

我有一個包含以下代碼的簡單App.java文件(請參見下文)。 build / compileJava步驟運行良好,沒有錯誤。 但是,當我運行代碼時,我得到:“線程“主”中的異常” java.lang.NoClassDefFoundError:com / mongodb / MongoClient位於App.main(App.java:9)

我是Java新手。 除了在build.gradle依賴項列表中引用該驅動程序外,我不確定是否需要下載該驅動程序;如果需要,還應將其放置在何處。

這是我的src / main / java / App.java:

import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;

public class App{
        public static void main (String[] args){
                System.out.println("Connecting ... ");
                try {
                        MongoClient client = new MongoClient();
                }
                catch(Exception e) {
                        System.out.println("Failed to connect to MongoDB");
                }

        }
}

運行應用程序時,應將mongodb-client jar及其依賴項添加到類路徑。

最簡單的方法是從Gradle啟動應用程序。 將以下任務添加到您的build.gradle

task run(type: JavaExec) {
    classpath = sourceSets.main.runtimeClasspath
    main = 'App'
}

然后執行gradle --info run啟動您的應用程序。 我添加了--info參數,以便gradle將記錄用於啟動應用程序的命令。 在我的機器上,顯示的命令是:

 /usr/lib/jvm/java-8-openjdk/bin/java -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /tmp/App/build/classes/main:/tmp/App/build/resources/main:/home/wg01018/.gradle/caches/modules-2/files-2.1/org.mongodb/mongodb-driver/3.3.0/398df8cc99f36c81344f37401b4284d39f84f6a5/mongodb-driver-3.3.0.jar:/home/wg01018/.gradle/caches/modules-2/files-2.1/org.mongodb/bson/3.3.0/d57b1626e7007a93deb12b2b607e85f6822bf060/bson-3.3.0.jar:/home/wg01018/.gradle/caches/modules-2/files-2.1/org.mongodb/mongodb-driver-core/3.3.0/9af003a316f17323ade866ba5a484a03de6ff025/mongodb-driver-core-3.3.0.jar App

您會看到classpath包含mongodb-driver jar,還有一些其他的jar,它們是mongodb-driver jar的依賴項。

gradle dependencies將為您顯示這些依賴關系的樹。

最簡單的方法是使用Gradle application插件。 應用程序插件將自動添加運行任務,該任務將執行指定的主類,並將所有運行時依賴項自動置於類路徑中:

apply plugin: 'application'

mainClassName = 'App'

dependencies {
    compile 'org.mongodb:mongodb-driver:3.3.0'
}

repositories {
    mavenCentral()
}

您可以通過以下gradle run應用程序: gradle run

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM