简体   繁体   中英

Gradle dependencies not being exported to runnable jar by eclipse

I am trying to export my gradle eclipse project to a runnable jar, however it's dependencies are not being bundled into the runnable jar itself.

I file -> export -> runnable jar -> Extract required libraries into generated jar.

They are correctly exported if I manually do "add external jar" from the configure build path option, however I want to do this via gradle, and they are not correctly exported without the manual add.

I have tried to do a gradlew clean, and gradlew build. I have refreshed my gradle dependencies, and I have rebuilt the project, as well as cleaned it via the eclipse project -> clean option.

Below is my build.gradle file:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.1.4.RELEASE")
    }
}

plugins {
    id 'java'
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'


version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-activemq")
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile 'org.json:json:20171018'
    compile 'org.mongodb:mongo-java-driver:3.6.4'
    compile group: 'com.github.jai-imageio', name: 'jai-imageio-core', version: '1.4.0'
    compile files ('../libs/CommonUtils.jar')
    compile files ('../libs/UMS.jar')
    compile files ('../libs/Cache.jar')
}

jar {
    from { configurations.runtime.collect { zipTree(it) } }
}

When I look into the jar generated, I see that it doesn't contain the dependencies inside it, and when I go to run the jar via java -jar jar.jar, I get a NoClassDefFound error. I want to get all my gradle dependencies bundled into a runnable jar so I can do a java -jar jar.jar and have my jar run as if I had hit run in the eclipse editor.

The build tools itself will create the runnable jar.

gradle clean
gradle taskName 

Project Jar will be created under folder :

$project/build/libs/ folder. 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM