Gradle不排除指定文件

时间:2018-01-09 13:28:02

标签: gradle build.gradle gradlew gradle-eclipse

我添加了exclude语句,但仍然在jar中添加了我的排除abc/object/MyTestConfig*.class,原因何在?

jar {
  zip64 true

  from((configurations.compile - configurations.jarDepends).collect { it.isDirectory() ? it : zipTree(it) }) {
    exclude "META-INF/*.SF"
    exclude "META-INF/*.DSA"
    exclude "META-INF/*.RSA"
  }
  from ("$projectDir/src/main/java/") {
    include "**/*.hbm.xml", 
            "abc/tools/xml/XMLClasses.MF"
    exclude "abc/object/MyTestConfig*.class"
  }
}

task filterVersionConstants(type: Copy) {
  from "src/main/java/abc/"
  into "src/main/java/abc/"
  include "VersionConstants.tmpl"
  exclude "**/MyTestConfig*.class"
  rename { String fileName -> 
      fileName.replace('.tmpl', '.java')
}

2 个答案:

答案 0 :(得分:0)

您正尝试从源目录中排除类文件,但只有Java(源)文件驻留在那里。你是想阻止这个类被构建,还是只是没有打包?排除java文件以防止它被构建,或者从输出目录而不是源目录中排除类文件。

答案 1 :(得分:0)

经过几次反复试验,我终于能够从我的jar中排除这个文件,如下所示。基本上我需要首先在jar任务中拉出exclude语句。

jar {
  zip64 true
  exclude "abc/object/MyTestConfig*.class"

  from((configurations.compile - configurations.jarDepends).collect { it.isDirectory() ? it : zipTree(it) }) {
    exclude "META-INF/*.SF"
    exclude "META-INF/*.DSA"
    exclude "META-INF/*.RSA"
  }
  from ("$projectDir/src/main/java/") {
    include "**/*.hbm.xml", 
            "abc/tools/xml/XMLClasses.MF"
  }
}