【问题标题】:Is it possible to set debug sources for release build type?是否可以为发布构建类型设置调试源?
【发布时间】:2022-11-02 21:51:20
【问题描述】:

在我们的项目中,我们有一个用于测试的构建类型,它可以回退到发布:

 releaseTesting {
     matchingFallbacks = ['release']
     ...
 }

我们想添加一个调试面板来简化测试,但有一个矛盾,因为调试面板模块应该使用调试源,但它是一个发布类型。我尝试为调试面板 mdoule 添加 releaseTesting 构建类型并将源设置为调试,如下所示:

   buildTypes {
       releaseTesting {
          matchingFallbacks = ['release']
       }
   }

   sourceSets {
        releaseTesting {
            setRoot 'src/debug'
        }
    }

但它会破坏调试面板所依赖的核心模块中的资源检索。是否有可能以某种方式解决问题?或者也许有更好的方法来组织它?

【问题讨论】:

  • “发布时测试”的全部意义在于 100% 准确地表示您的用户正在获得什么。如果您使用测试面板进行测试,则它已经不是准确的版本表示。所以没有理由再坚持发布简化测试。保留 2 个测试版本:准确和简化,但您需要非常严格的纪律,因为简化不是真正的测试,只是快速浏览。以我的经验,人们很懒惰,总是会用简化的东西代替真实的东西,这会悄悄地删除你的测试,同时假装你仍然有它们。

标签: android android-gradle-plugin build.gradle


【解决方案1】:

好吧,我发现的最佳方法是创建无操作实现并将其提供给发布构建类型:

debugImplementation(project(":debug:impl"))
releaseTestingImplementation(project(":debug:impl"))
releaseImplementation(project(":debug:no-op"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    相关资源
    最近更新 更多