让我们说我在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 Server中的Libraries,之后我创建一个Docker。例如,我需要排除ehcache jar,因为它们是应用服务器中持久性引擎的一部分。
我试过了:
task copyRuntimeLibs(type: Copy) {
from (configurations. providedCompile - 'net.sf.ehcache:ehcache:2.10.3')
into "build/docker/dependenciesLibrary"
}
但它不会奏效。来自ehcache的罐子仍然被复制。
如何在Gradle中创建一个复制任务,例如,从那些jackson依赖项中获取jar(但不能复制javaee-api)
感谢
答案 0 :(得分:3)
你可以尝试
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'