使用Gradle从自定义Jar中排除编译的源代码

使用Gradle从自定义Jar中排除编译的源代码,gradle,jar,build.gradle,Gradle,Jar,Build.gradle,我试图从一个特定的类包中构建一个JAR,所以我想从这个JAR中排除所有其他包。这就是我所拥有的 task receiverJar(type: Jar) { baseName = "receivers" from sourceSets.main.output include 'com/foo/receivers/**' exclude 'com/foo/cli/**' exclude 'com/foo/tdl/**' with jar } 当我执行gradle recei

我试图从一个特定的类包中构建一个JAR,所以我想从这个JAR中排除所有其他包。这就是我所拥有的

task receiverJar(type: Jar) {
  baseName = "receivers"
  from sourceSets.main.output
  include 'com/foo/receivers/**'
  exclude 'com/foo/cli/**'
  exclude 'com/foo/tdl/**'
  with jar
}

当我执行
gradle receiverJar
时,我仍然会得到JAR文件中的所有其他包和类。

我认为,问题是我的源集需要自定义。我有其他需要特定源集的构建。我是否可以为特定任务创建自定义源集?否,因为如果排除当前源集,其他任务将无法工作。那么,你能告诉我如何在我的receverJar任务中包含一个自定义源集吗?好吧,这里是真正的交易。我需要编译所有内容,但只需要将已编译类的子集包含到JAR文件中。因此,由于依赖于其他类,自定义源集(我发现)无法编译。因此,对于我最初的问题,我想构建一个JAR,但从JAR文件中排除一些包。您确定您正在检查正确的JAR吗?使用您的(正确的)表示法,我的自定义jar正确地包含/排除了指定的类。而且,不需要使用jar的