How to Exclude directory and its contents in gradl

2019-02-20 08:33发布

问题:

I am using gradle war plugin, I am trying to exclude some directories inside WEB-INF directory while packing a war, but the excludes don't seem to work. This is what I have

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

Any solution on this ?

回答1:

To exclude a folder named metadata contained in WEB-INF use the following code in your build.gradle file:

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

or depending on your coding style you could also use:

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

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



回答2:

Are you looking for something like this http://gradle.1045684.n5.nabble.com/Exclude-properties-file-from-war-td3365147.html? If so only remember, that in recent versions of Gradle (I'm using 1.6) there's sourceSets.main.output. It'd helpful if you could specify what metadata is and attach your project's layout.

One more thing: you may also like to:

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


回答3:

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/**'
    }
}
}


标签: java war gradle