gradle - 如何在 Gradle 中复制一些依赖项 jar

标签 gradle

假设我在 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/

相关文章:

gradle - 在 Gradle 中,如果没有测试失败,如何运行所有测试然后发布?

java - Gradle构建jar在运行时找不到依赖项

jenkins - 如何查看Gradle在Jenkins中生成的HTML报告

maven - 仅将 Android Studio 与 Maven 一起使用

android - 无法解析符号 GsonConverterFactory

android - Android 上的 gradle 自定义任务顺序

android - 应用于所有构建类型的 archiveBaseName

android - 构建 Android 项目时出错。 "AAPT process not ready to receive commands"

java - 无法找到以下类错误(最新版本)

android - 如何混淆 Android 库模块