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

标签 java android gradle

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

最佳答案

找到了答案。这是我的实现:

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 资源(因此你必须确保在此之前删除文件/目录!)

关于java - Gradle:如何在编译后删除类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854204/

相关文章:

java - 从外部类更新 JPanel 只会添加另一个类,但不会替换它

java - 为什么这个同步方法没有按预期工作?

java - Java 8 中的 MetaSpace 有什么用?

android - 每个 Activity 底部的常用按钮或选项卡

android - 在CircleCI中构建android应用程序测试时找不到gradlew

css - Assets 管道最小化为CSS header 添加问号

java - 关于为什么使用 jsp :include tag into another jsp isn't working in this scenario? 传递对象的任何原因

android - Android应用:创建静音按钮

android - 为什么我无法在 android studio 3.1.0 中构建?

java - Gradle + Spring Boot 错误 : Failed to bind properties