如何将项目的依赖项复制到构建目录?
这是一个很常见的问题。我搜索并找到了许多回答这个确切问题的线程,但没有一个解决方案有效。这里有三个线程(有些已经很老了),它们提供了我无法工作的解决方案。
https://discuss.gradle.org/t/how-can-i-gather-all-my-projects-dependencies-into-a-folder/7146
仅供参考,我试过,其中包括:
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。
建议使用内置的“分发”插件。
plugins {
id 'distribution'
}
group 'org.yourorg'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile group: 'log4j', name: 'log4j', version: '1.2.17'
}
distributions {
main {
contents {
from jar // copies your jar
from(project.configurations.runtime) // copies dependency jars
}
}
}
然后您可以运行一个命令,该命令将在一个步骤中编译和组装:
gradlew installDist
这会将发行版创建为 ./build/install/ 下的目录结构
此外,您可以将发行版创建为 ./build/distributions/ 下的 zip
gradlew distZip
如果要将构建的 jar 与依赖项分开,这是常规的:
distributions {
main {
contents {
from jar
into('lib') {
from(project.configurations.runtime)
}
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句