是否可以从导入的 gradle 库中删除类?

Dav*_*vid 6 android bouncycastle gradle android-gradle-plugin

我正在搜索并尝试通过 gradle 从导入的库中删除一个类,而没有真正让它工作,这是否可以通过 Android+gradle 实现?这该怎么做?

例如,如果我包含这样的库:

implementation 'org.bouncycastle:bcpkix-jdk15on:1.64'
Run Code Online (Sandbox Code Playgroud)

如何按名称从中删除类?我尝试的最新方法是在 build.gradle 中设置:

android {
  sourceSets.main.java.filter.exclude '**/QTeslaKeyEncodingTests.*'
}
Run Code Online (Sandbox Code Playgroud)

以下也不起作用:

jar {
    sourceSets {
        main {
            java {
                exclude '**/QTeslaKeyEncodingTests.java'
                exclude '**/QTeslaKeyEncodingTests.class'
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这也没有:

android{
  packagingOptions {        
    exclude 'org.bouncycastle/pqc/crypto/qtesla/QTeslaKeyEncodingTests.class'
  }
}
Run Code Online (Sandbox Code Playgroud)

上下文:为什么我目前需要这个:当你执行“gradlew testDebug”时,项目中的所有测试都会运行,包括那些存在于导入的库中的测试。我也不知道这是否是 bouncyCastle 的错误,他们将这些测试包含在库中,但这是一个问题,因为许多测试都失败了。

Vis*_*war 1

使用此代码从测试目标中排除文件,因为您有兴趣在运行测试时排除这些文件。

sourceSets {

     androidTest {
         java {
             exclude '**/QTeslaKeyEncodingTests.java'
             exclude '**/QTeslaKeyEncodingTests.class'
        }
     }
  }
Run Code Online (Sandbox Code Playgroud)