1
如何将模块的所有依赖jar保存到目录?我有一个在IntelliJ IDEA中运行的应用程序,但我想在另一台计算机上运行它,所以我需要将所有JAR文件复制到那里。将Gradle依赖关系保存到目录
如何将模块的所有依赖jar保存到目录?我有一个在IntelliJ IDEA中运行的应用程序,但我想在另一台计算机上运行它,所以我需要将所有JAR文件复制到那里。将Gradle依赖关系保存到目录
首先,请考虑使用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分发版。如前所述你可以轻松地添加摇篮包装,然后你可以通过使用包装,而不是你的操作系统上安装运行摇篮
./gradlew [task]
。在你的情况下运行
./gradlew build
将下载所有依赖关系并构建项目。它比手动复制依赖关系要好得多,Gradle是为了我们而发明的。
首先,答案非常好。但我真的不明白为什么人们会继续使用像$ {project.projectDir}/lib'这样复杂的路径。任何Gradle任务的默认功能都会解释相对于项目目录的路径,所以'lib'就足够了。 –
@ lu.koerfer你是对的,感谢您的输入!示例已更新。 –
另外,为什么IT依赖'build'? – Opal