我试图弄清楚如何删除我在Gradle中编译时只需要的java类文件。换句话说,我只希望某个类用于编译步骤,但不包含在jar包中。在这种情况下,我说的是我需要从我的库项目中删除的BuildConfig.java类,因为我在我的应用程序项目中定义了另一个具有相同名称空间的类。提前谢谢!
答案 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资源(因此你必须确保在发生之前删除文件/目录!)