热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何从构建中停止GradleforAndroid*所有*库模块构建类型在每个构建?

如何解决《如何从构建中停止GradleforAndroid*所有*库模块构建类型在每个构建?》经验,如何解决这个问题?

我确信之前已经问过这个问题,但是我找不到合适的关键词来找出答案,所以...

当我请求构建一个构建类型时,如何阻止Gradle for Android(Android Studio内部或外部)构建库模块的所有构建类型?IOW,如果我正在构建,我如何防止Gradle for Android 也在构建?debugrelease


对于那些有其他想法的人来说,这个背景故事:

假设我有两个Android Studio项目,A和B.每个项目都有两个模块:一个Android库模块和一个依赖于该库的演示应用程序.所以,我总共有四个模块:

A L:项目A的库

A D:项目A的演示应用程序

B L:项目B的图书馆

B D:项目B的演示应用程序

只要A和B不相关,生活就会好.

但是如果我想让B L依赖A L呢?

因为release,如果我希望这些库进入Maven风格的工件库,我需要releaseB L的变体来依赖于已发布的A L工件.这样,我的B L POM就有了正确的依赖信息.

因为debug,如果B L可以依赖于A L的工作副本,那将是理想的.设置它有点hacky,我可以使它工作.

但是如果我向A L添加内容,比如新的Java类,我尝试从B L中使用它,我无法构建.我的debug构建是完美的AFAICT.然而,尽管我真的真的不想现在进行release构建,但Gradle for Android坚持要做一个release构建:

$ gradle assembleDebug
:demo:preBuild UP-TO-DATE
:demo:preDebugBuild UP-TO-DATE
:demo:compileDebugNdk UP-TO-DATE
:demo:checkDebugManifest
:demo:preReleaseBuild UP-TO-DATE
:richedit:compileLint
:richedit:copyReleaseLint UP-TO-DATE
:richedit:mergeReleaseProguardFiles UP-TO-DATE
:richedit:preBuild UP-TO-DATE
:richedit:preReleaseBuild UP-TO-DATE
:richedit:checkReleaseManifest
:richedit:prepareReleaseDependencies
:richedit:compileReleaseAidl UP-TO-DATE
:richedit:compileReleaseRenderscript UP-TO-DATE
:richedit:generateReleaseBuildConfig UP-TO-DATE
:richedit:generateReleaseAssets UP-TO-DATE
:richedit:mergeReleaseAssets UP-TO-DATE
:richedit:generateReleaseResValues UP-TO-DATE
:richedit:generateReleaseResources UP-TO-DATE
:richedit:packageReleaseResources
:richedit:processReleaseManifest UP-TO-DATE
:richedit:processReleaseResources
:richedit:generateReleaseSources
:richedit:compileReleaseJava

(在哪里richedit是B L并且在我的命名法中demo是B D)

我要求组装debug构建,但它仍然编译release构建.并且release构建无法编译,因为我试图让B L使用来自A L的新未发布的东西.

我有理由相信,尽管不是100%肯定,如果Gradle for Android release在我尝试构建的时候会轻易忽略debug,那我就会很好.

当然,有可能的解决方法:

我可以放弃这些是独立的库并将它们合并为一个的想法.我可能会这样做.但它确实感觉就像我想做的那样应该是可能的.

我不能尝试使用一个大号的变化,直到我发布release一个大号,在这种情况B 大号可取决于两个发布的神器debugrelease.然而,这似乎会在A项目中引起很多补丁级别的流失,因为我的主要消费者"这个新功能的用例"是B.仅仅因为我在A中的变化通过了仪器测试并不意味着他们将是B需要的东西,直到我可以用A中的变化构建B,我才会知道.

上述解决方法的变体可能是SNAPSHOT发布,我会以某种方式启用检查SNAPSHOT发布debug但不适用于release某些内容.然而,Maven,Gradle,Android和SNAPSHOT所有这些的混合看起来似乎没有记录,我不知道这是否是我应该追求的东西.并且,与前面的子弹一样,这仍然会导致release不必要的构建; 在我的情况下,构建将成功.

有一些摇篮的Android设置的地方,我很想念,说debug只是 debug


推荐阅读
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • addInstrumentedPackage 方法不支持指定单一类进行 instrumentation ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 本文对SQL Server系统进行了基本概述,并深入解析了其核心功能。SQL Server不仅提供了强大的数据存储和管理能力,还支持复杂的查询操作和事务处理。通过MyEclipse、SQL Server和Tomcat的集成开发环境,可以高效地构建银行转账系统。在实现过程中,需要确保表单参数与后台代码中的属性值一致,同时在Servlet中处理用户登录验证,以确保系统的安全性和可靠性。 ... [详细]
author-avatar
手机用户2502934505
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有