Gradle:如何在编译后删除类文件

时间:2014-11-10 22:28:22

标签: java android gradle

我试图弄清楚如何删除我在Gradle中编译时只需要的java类文件。换句话说,我只希望某个类用于编译步骤,但不包含在jar包中。在这种情况下,我说的是我需要从我的库项目中删除的BuildConfig.java类,因为我在我的应用程序项目中定义了另一个具有相同名称空间的类。提前谢谢!

2 个答案:

答案 0 :(得分:1)

您可以从罐包装中排除任何类别。您可以尝试添加gradle文件。

jar {
    exclude "BuildConfig.class"
    // or
    exclude "**/BuildConfig.class"
}

答案 1 :(得分:0)

找到答案。这是我的实施:

android.libraryVariants.all { variant ->
   String taskName = String.format("remove%BuildConfig", variant.name.capitalize())
   task "${taskName}" << {
      file("${buildDir}/intermediates/classes/${variant.name}/path/to/file/or/directory").delete()
   }
   variant.processJavaResources.dependsOn(taskName)
}

基本上,我浏览了所有库变体并添加了一个名为“remove {variant} BuildConfig”的任务。它的工作显然是删除$ {buildDir} / intermediates / classes目录中的.class文件。然后你必须确保任务在processJavaResources任务之前运行,该任务负责在编译之后复制所有java资源(因此你必须确保在发生之前删除文件/目录!)