首页 > 解决方案 > 如何从gradle生成的jar中排除配置文件

问题描述

我有两个项目:

app是一个依赖common的项目。

项目结构为:

project
    common 
         conf
         src
            java
            test
    app 
         conf
         src
            java 
            test

所以就 build.gradle 而言

常见的:

dependencies {
    ....
}
sourceSets {
    main {
        java {
            srcDir 'src/java'
            exclude 'conf'
        }
        resources {
            srcDir 'conf'
        }
    }

    test {
        java {
            srcDir 'src/test'
        }
    }
}

应用程序:

dependencies {
    compile project(':common')
    ....
}
sourceSets {
    main {
        java {
            srcDir 'src/java'
            exclude 'conf'
        }
        resources {
            srcDir 'conf'
        }
    }

    test {
        java {
            srcDir 'src/test'
        }
    }
}

但是,当我在运行app的测试用例时检查build文件夹中生成的common.jar时。我可以看到 common.jar 包含 conf 的 *.xml 文件。

我还尝试将以下内容添加到 common build.gradle:

jar { 
    exclude('conf/**') 
} 

但似乎不起作用。

仅当我运行 app 的测试用例时,有没有办法从common.jar中排除 conf/*xml ?

标签: javagradle

解决方案


在您的 build.gradle 文件中,您可以添加 exclude 命令,后跟要排除的文件

jar {     
   exclude('your file name')     
}

此外,如果您想排除多个文件

jar { 
    exclude('file1', 'file2')
  }

推荐阅读