Gradle: How to exclude a particular package from a jar?

后端 未结 3 439
甜味超标
甜味超标 2020-12-01 12:56

We have a package that is related to some requirements that were removed, but we don\'t want to necessarily delete the code because there\'s a possibility it will be needed

相关标签:
3条回答
  • 2020-12-01 13:13

    This solution is valid if you don´t want to compile these packages, but if you want to compile them and exclude from your JAR you could use

    // tag::jar[]
    jar {
        exclude('mi/package/excluded/**')   
        exclude('mi/package/excluded2/**')  
    }
    // end::jar[]
    
    0 讨论(0)
  • 2020-12-01 13:18

    In 2018:

    You may also use a closure or Spec to specify which files to include or exclude. The closure or Spec is passed a FileTreeElement, and must return a boolean value.

    jar {
      exclude {
        FileSystems.getDefault()
          .getPathMatcher("glob:com/ourcompany/someotherpackage/polling/**")
          .matches(it.file.toPath())
      }
    }
    

    See Jar.exclude, FileTreeElement and Finding Files.

    0 讨论(0)
  • 2020-12-01 13:28

    If you have some sources that you don't want to be compiled, you have to declare a filter for the sources, not for the class files that are put in the Jar. Something like:

    sourceSets {
        main {
            java {
                include 'com/ourcompany/somepackage/activityadapter/**'
                include 'com/ourcompany/someotherpackage/**'
                exclude 'com/ourcompany/someotherpackage/polling/**'
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题