如何在gradle war中排除目录及其内容

时间:2013-05-16 09:59:56

标签: java war gradle

我正在使用gradle war插件,我试图在打包战争时排除WEB-INF目录中的某些目录,但排除似乎不起作用。 这就是我所拥有的

 war {
   webInf {
        from 'src/main/config'
    }
   exclude('metadata/**')
  }

对此有任何解决方案吗?

4 个答案:

答案 0 :(得分:3)

排除 metadata中包含的名为WEB-INF的文件夹,请在build.gradle文件中使用以下代码:

war.rootSpec.exclude("**/WEB-INF/metadata/")

或根据您的编码风格,您也可以使用:

war 
{ 
    rootSpec.exclude("**/WEB-INF/metadata/") 
}

This link on the gradle discussion forum may also be of help

答案 1 :(得分:1)

您正在寻找类似http://gradle.1045684.n5.nabble.com/Exclude-properties-file-from-war-td3365147.html之类的内容吗?如果是这样,请记住,在最新版本的Gradle(我使用的是1.6)中,有sourceSets.main.output。 如果您可以指定元数据并附加项目的布局,那将非常有用。

还有一件事:您可能也想:

//remove jars only for provided compile
classpath -= configurations.providedCompile

答案 2 :(得分:0)

see this post and comments

war {
// remove classes from the classpath <<<<<<<
classpath = configurations.runtime

// add them in explicitly, with the filtering applied
webInf {
    into('classes') {
        from sourceSets.main.classes
        exclude 'org/gradle/sample/excludeme/**'
    }
}
}

答案 3 :(得分:0)

sourceSets {
    main {
        src {
            srcDir 'config'
            exclude 'metadata/**'
        }
    }
}