簡體   English   中英

Java jar文件無法識別從Gradle添加的外部庫

[英]Java jar file won't recognize external libraries added from gradle

喲伙計們,基本上我在Java項目中使用gradle,並且無法在我正在使用的jar文件中導出庫。 嘗試了一些解決方案,但沒有任何效果。 您是否知道gradle文件中缺少的內容,或者在導出時需要指定一些內容。 我正在使用Eclipse

謝謝,這是我的gradle文件

    enter code here
plugins {
    // Apply the java-library plugin to add support for Java Library
    id 'java-library'

}

repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
    mavenCentral()
}

dependencies {
    // This dependency is exported to consumers, that is to say found on their compile classpath.
    api 'org.apache.commons:commons-math3:3.6.1'

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:27.0.1-jre'

    // Use JUnit test framework
    testImplementation 'junit:junit:4.12'

    implementation "redis.clients:jedis:3.0.1"
    implementation  'org.pixsee.java-fcm:Java-fcm:1.0.0'  

    implementation 'com.google.firebase:firebase-admin:6.10.0'


    compile "org.slf4j:slf4j-api:1.6.1"

     implementation 'org.slf4j:slf4j-simple:1.7.25'
     implementation "com.google.maps:google-maps-services:0.9.4"
     implementation 'io.vertx:vertx-core:3.8.1'

}
sourceCompatibility = 1.8
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'GeofenceServer',
                   'Implementation-Version': version
    }
}
apply plugin: "eclipse"

終於解決了它,從Sterconium的回答讓我在正確的軌道答案 ,但問題是,當我嘗試創建它說找不到主類fatJar,究其原因是因為我的文件都放在src / test / java下,而不是SRC / main / java以及當我嘗試運行fatJar時以某種方式對其進行編譯,但仍找不到依賴關系,因此我將實現更改為在build.gradle文件中進行編譯,現在它可以正常工作。所以這是我最終的build.gradle文件看起來像 。

    /*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java Library project to get you started.
 * For more details take a look at the Java Libraries chapter in the Gradle
 * User Manual available at https://docs.gradle.org/5.4/userguide/java_library_plugin.html
 */
plugins {
    // Apply the java-library plugin to add support for Java Library
    id 'java-library'
}
repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
    mavenCentral()
}


apply plugin: "java"
apply plugin: "eclipse"

version = '1.0'

//create a single Jar with all dependencies
task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Gradle Jar File Example', 
            'Implementation-Version': version,
            'Main-Class': 'Server.Test'
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}


dependencies {
    // This dependency is exported to consumers, that is to say found on their compile classpath.
    api 'org.apache.commons:commons-math3:3.6.1'


    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:27.0.1-jre'

    // Use JUnit test framework
    testImplementation 'junit:junit:4.12'


    implementation "redis.clients:jedis:3.0.1"
    implementation 'com.google.firebase:firebase-admin:6.10.0'
    implementation 'org.slf4j:slf4j-simple:1.7.25'
    implementation 'com.google.maps:google-maps-services:0.10.0'
    compile 'io.vertx:vertx-core:3.8.1'
    implementation 'com.google.code.gson:gson:2.8.5'
}

暫無
暫無

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

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