Gradle依赖项未通过Eclipse导出到可运行的jar

时间:2019-07-12 18:22:53

标签: java eclipse gradle dependencies

我正在尝试将gradle eclipse项目导出到可运行的jar中,但是它的依赖项并未被捆绑到可运行的jar中。

我的文件->导出->可运行的jar->将所需的库提取到生成的jar中。

如果我从configure build path选项手动执行“添加外部jar”,则它们将正确导出,但是我想通过gradle进行此操作,并且如果没有手动添加,它们将无法正确导出。

我尝试过清理gradlew,并构建了gradlew。我已经刷新了gradle依赖项,并重建了该项目,并通过eclipse project-> clean选项对其进行了清理。

下面是我的build.gradle文件:

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) } }
}

当我查看生成的jar时,我发现它不包含其中的依赖项,并且当我通过java -jar jar.jar运行jar时,出现了NoClassDefFound错误。我想将所有gradle依赖项捆绑到一个可运行的jar中,以便可以执行java -jar jar.jar并使我的jar运行,就像在Eclipse编辑器中命中运行一样。

1 个答案:

答案 0 :(得分:0)

构建工具本身将创建可运行的jar。

gradle clean
gradle taskName 

Project Jar将在文件夹

下创建
$project/build/libs/ folder.