假设我在 Gradle 中有此依赖项:
providedCompile(
'javax:javaee-api:7.0',
'org.slf4j:slf4j-api:1.7.21',
'com.fasterxml.jackson.core:jackson-databind:2.5.4',
'com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.5.4',
'net.sf.ehcache:ehcache:2.10.3',
'com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.5.4',
)
(我使用war插件中的providedCompile作为ai)
我有这个用于编译时,但在构建所有内容之后,我需要将其中一些(不是全部)依赖项中使用的 jar 复制到几个目录,以将它们配置为我的 Liberty 服务器中的库,之后我创建一个 Docker 就可以了。例如,我需要排除 ehcache jar,因为它们是应用程序服务器中持久性引擎的一部分。
我已经尝试过:
task copyRuntimeLibs(type: Copy) {
from (configurations. providedCompile - 'net.sf.ehcache:ehcache:2.10.3')
into "build/docker/dependenciesLibrary"
}
但它不会工作。来自 ehcache 的 jar 仍然被复制。
如何在 Gradle 中创建一个复制任务,例如从那些 jackson 依赖项获取 jar(但不复制 javaee-api 依赖项)
谢谢
最佳答案
你可以试试
task copyRuntimeLibs(type: Copy) {
from (configurations.providedCompile){
exclude 'ehcache-2.10.3.jar'
}
into "build/docker/dependenciesLibrary"
}
还有
task copyRuntimeLibs(type: Copy) {
from (configurations.providedCompile){
exclude 'ehcache*.jar'
}
into "build/docker/dependenciesLibrary"
}
两者都可以正常工作,
但实际上我不知道是否有办法直接使用 'net.sf.ehcache:ehcache:2.10.3' 而不是使用 'ehcache-2.10.3 .jar' 或排除'ehcache*.jar'
关于gradle - 如何在 Gradle 中复制一些依赖项 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41433616/