Gradle项目:将依赖项复制到生成目录
如何将项目的依赖项复制到生成目录 这是一个非常常见的问题。我已经搜索并找到了许多线索来回答这个确切的问题,但没有一个解决方案是有效的。这里有三个线程(有些非常旧),它们提供了我无法使用的解决方案 仅供参考,我已经尝试过,其中包括:Gradle项目:将依赖项复制到生成目录,gradle,Gradle,如何将项目的依赖项复制到生成目录 这是一个非常常见的问题。我已经搜索并找到了许多线索来回答这个确切的问题,但没有一个解决方案是有效的。这里有三个线程(有些非常旧),它们提供了我无法使用的解决方案 仅供参考,我已经尝试过,其中包括: task copyDependencies(type: Copy) { from configurations.compile into 'dependencies' } task copyDependencies2(type: Copy) {
task copyDependencies(type: Copy) {
from configurations.compile
into 'dependencies'
}
task copyDependencies2(type: Copy) {
from project.configurations.compile
into project.buildDir
}
project.copy {
from project.configurations.compile
into project.buildDir
}
如果可能的话,我更喜欢当前推荐的最佳实践方法,而不是过时的方法。我将继续使用当前的Gradle,截至本文撰写之时,它的版本为4.7。好的,在玩了几个小时后,我有了一个有效的解决方案。这与旧的解决方案非常不同,旧的解决方案似乎不适用于当前版本的Gradle。这一款适用于Gradle 4.7:
task jarWithDeps(dependsOn: 'jar', type: Copy) {
def conf = configurations.runtimeClasspath
from conf.allDependencies.collect { conf.files(it) }
into "${project.buildDir}/libs"
}
好的,在玩了几个小时之后,我有了一个有效的解决方案。这与旧的解决方案非常不同,旧的解决方案似乎不适用于当前版本的Gradle。这一款适用于Gradle 4.7:
task jarWithDeps(dependsOn: 'jar', type: Copy) {
def conf = configurations.runtimeClasspath
from conf.allDependencies.collect { conf.files(it) }
into "${project.buildDir}/libs"
}
建议使用内置的“分发”插件
插件{
id“分发”
}
组“org.yourorg”
版本“1.0-SNAPSHOT”
存储库{
mavenCentral()
}
依赖关系{
testCompile组:“junit”,名称:“junit”,版本:“4.12”
编译组:“log4j”,名称:“log4j”,版本:“1.2.17”
}
分配{
主要{
内容{
从jar//复制您的jar
from(project.configurations.runtime)//复制依赖项jar
}
}
}
然后,您可以运行一个命令,该命令将在一个步骤中编译和组装:
gradlew installDist
这将在./build/install/此外,您可以在./build/distributions下将分发创建为zip/
gradlew distZip
如果要将构建的jar与依赖项分开,这是常规的:
分布{
主要{
内容{
从罐子里
进入('lib'){
来自(project.configurations.runtime)
}
}
}
}
建议使用内置的“分发”插件
插件{
id“分发”
}
组“org.yourorg”
版本“1.0-SNAPSHOT”
存储库{
mavenCentral()
}
依赖关系{
testCompile组:“junit”,名称:“junit”,版本:“4.12”
编译组:“log4j”,名称:“log4j”,版本:“1.2.17”
}
分配{
主要{
内容{
从jar//复制您的jar
from(project.configurations.runtime)//复制依赖项jar
}
}
}
然后,您可以运行一个命令,该命令将在一个步骤中编译和组装:
gradlew installDist
这将在./build/install/此外,您可以在./build/distributions下将分发创建为zip/
gradlew distZip
如果要将构建的jar与依赖项分开,这是常规的:
分布{
主要{
内容{
从罐子里
进入('lib'){
来自(project.configurations.runtime)
}
}
}
}
我相信使用gradle 6.1.1版,这对我来说很有效。谢谢。我相信使用gradle版本6.1.1,这对我来说很有效。谢谢