将Gradle依赖项保存到目录

时间:2017-10-08 08:11:31

标签: java intellij-idea gradle

如何将模块的所有相关jar保存到目录?我有一个在IntelliJ IDEA中运行的应用程序,但我想在另一台计算机上运行它,所以我需要复制那里的所有JAR文件。

2 个答案:

答案 0 :(得分:2)

首先,请考虑使用Gradle(或Gradle Wrapper)执行诸如在另一台计算机上获取/下载项目的依赖项之类的操作。但是,如果您因任何其他原因需要复制依赖项,则可以定义类似于以下内容的任务:

task copyDependencies(type: Copy) {
    from configurations.runtime
    into "lib"
}

当你跑步时:

gradle copyDependencies

运行时依赖项将被复制到lib/文件夹。

实施例

<强>的build.gradle

apply plugin: 'groovy'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.3.11'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.1'
    compile group: 'com.h2database', name: 'h2', version: '1.4.196'

    testCompile group: 'org.spockframework', name: 'spock-core', version: '1.1-groovy-2.4'

}
task copyDependencies(type: Copy) {
    from configurations.runtime
    into "lib"
}

命令:

gradle copyDependencies

lib/目录包含:

lib
├── groovy-all-2.3.11.jar
├── h2-1.4.196.jar
└── jackson-core-2.9.1.jar

使用Gradle Wrapper

正如我之前提到的,请考虑使用Gradle Wrapper,这样您就不必担心另一台计算机上是否安装了Gradle发行版。如上所述in the documentation,您可以轻松添加Gradle Wrapper,然后就可以运行

./gradlew [task]

使用包装器而不是在操作系统上安装Gradle。在你的情况下运行

./gradlew build 

将下载所有依赖项并构建项目。它比手动复制依赖项更好,Gradle被发明为我们做这件事。

答案 1 :(得分:0)

以下解决方案对我有用

configurations.implementation.setCanBeResolved(true) 
configurations.api.setCanBeResolved(true)
task copyDependencies(type: Copy) {
    from configurations.implementation  
    into "libs" 
}