首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么"out of source"构建不是默认值?

"out of source"构建不是默认值的原因是为了保持项目的整洁性和可维护性。下面是完善且全面的答案:

"out of source"构建是指将构建过程中生成的中间文件和最终的可执行文件放在与源代码分离的目录中。相反,"in-source"构建是将中间文件和可执行文件放在源代码所在的目录中。

为什么"out of source"构建不是默认值?

  1. 整洁性和可维护性:将构建产生的文件与源代码分开可以保持项目的整洁性。源代码目录应该专注于存放源代码文件,而不是杂乱的构建文件。这样做可以使项目结构更加清晰,易于理解和维护。
  2. 避免污染源代码:构建过程中生成的中间文件和可执行文件可能会干扰源代码的版本控制系统。如果这些文件与源代码混在一起,可能会导致版本控制系统的冲突和混乱。通过将构建产生的文件放在独立的目录中,可以避免这种问题。
  3. 方便清理和重建:将构建产生的文件放在独立的目录中,可以方便地清理和重建整个构建过程。如果构建文件与源代码混在一起,清理和重建可能会变得更加困难和耗时。
  4. 支持多个构建配置:在某些情况下,可能需要同时构建多个不同的配置,例如调试和发布版本。通过使用"out of source"构建,可以轻松地创建和管理多个构建配置,而不会相互干扰。
  5. 避免构建文件冲突:如果多个开发人员在同一个源代码目录中进行构建,可能会导致构建文件的冲突。通过使用"out of source"构建,每个开发人员可以在自己的独立目录中进行构建,避免了冲突问题。

总结起来,"out of source"构建不是默认值是为了保持项目的整洁性、可维护性,避免污染源代码,方便清理和重建,支持多个构建配置,以及避免构建文件冲突。

腾讯云相关产品和产品介绍链接地址:

腾讯云提供了丰富的云计算产品和服务,包括云服务器、云数据库、云存储、人工智能等。您可以访问腾讯云官方网站了解更多详情:https://cloud.tencent.com/

请注意,本回答不涉及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商。

相关搜索:如何让intellij使用gradle构建目录而不是out为什么使用System.out.printf()而不是System.out.println()会导致超过时间限制?为什么我不能构建apk而不是aar?为什么使用<T::Lookup作为StaticLookup>::Source而不是普通的T::AccountId?为什么要使用构建系统而不是IDE中包含的构建系统?为什么类星体“构建”不是一个已知的命令?单元测试失败或构建失败,并显示MomentJS: undefined不是函数时刻的默认值为什么SBT会在编译时找到导入,而不是在构建项目时?为什么RTD在构建时会运行"python env create“而不是"conda env create”?为什么boost::basic_array_source给出的值不是我用boost::iostreams::back_insert_device存储的值?为什么Firebase deploy的完整react应用程序而不是部署构建目录文件?为什么gitlab-ci默认为每个作业使用git克隆,而不是首先构建docker镜像?为什么Electron要使用以前的更改而不是最新的更改来构建react应用程序?使用MarkLogic Data Hub Central构建实体模型时,为什么使用/instance而不是/header创建范围路径索引?为什么我在构建之后会有这个obj\Debug\TempPE文件夹?[肯定不是复制品]为什么检索firebase数据值不是在google play发布后查看,而是构建模拟器显示检索数据?当np.nan设置为默认值时,为什么np.select返回'nan‘作为字符串,而不是np.nan?Firebase Cloud functions的Typescript :当functions文件夹在angular项目中,而不是隔离在自己的项目中时,为什么我会得到一个构建错误?构建angular应用程序,获取应用程序中使用的所有图像,字体文件放在dist文件夹中而不是常规的资源文件夹中?为什么?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么我们选择使用 React 而不是 Angular 构建新 UI

由于它们可以帮助工程师更快地构建定制解决方案,因此 Web App 的最终价格将会降低。...为什么选择 React 当在考虑构建我们新 UI 的不同选择时,React 显然是一个明智的选择,因为它的描述性,高效性和灵活性。...这些封装的组件管理自己的状态,因为组件逻辑是用 JavaScript 而不是模板编写的,你可以轻松地通过应用程序传递丰富的数据,而不用担心 DOM 中的状态。...使用 React,你应该永远记住,它实际上并不是一个 JS 框架,而是一个用于渲染视图的库。...是什么使得 React 与众不同 React 本身不是一个框架。如前所述,它应该被认为是视图渲染引擎或组件模型。 React 提供可重复使用的可配置组件,让您快速入门。

2.3K30

为什么我们选择使用 React 而不是 Angular 构建新 UI

由于它们可以帮助工程师更快地构建定制解决方案,因此 Web App 的最终价格将会降低。...为什么选择 React 当在考虑构建我们新 UI 的不同选择时,React 显然是一个明智的选择,因为它的描述性,高效性和灵活性。...这些封装的组件管理自己的状态,因为组件逻辑是用 JavaScript 而不是模板编写的,你可以轻松地通过应用程序传递丰富的数据,而不用担心 DOM 中的状态。...使用 React,你应该永远记住,它实际上并不是一个 JS 框架,而是一个用于渲染视图的库。...是什么使得 React 与众不同 React 本身不是一个框架。如前所述,它应该被认为是视图渲染引擎或组件模型。 React 提供可重复使用的可配置组件,让您快速入门。

2.7K60
  • 大家都在使用 @Builder ,我为什么建议你谨慎使用 @Builder

    (Builder Pattern)的使用和生成)的时候出现了一个默认值丢失事件,顺便借这个机会研究了一下 @Builder ,特此分享给大家,先说结论:建议在日常开发中谨慎使用 @Builder,为什么呢...@Builder上面的问题只要知道原理就很好的解决了,那我为什么还建议不使用 @Builder 呢?...@Builder 的不足@Builder 生成的构造器不是完美的,它不能区分哪些参数是必须的,哪些是可选的。如果没有提供必须的参数,构造器可能会创建出不完整或者不合法的对象。...@Accessors 的定义@Target({ElementType.TYPE, ElementType.FIELD})@Retention(RetentionPolicy.SOURCE)public...在构建一些长期、固定不可变的对象时我们可以适当使用 @Builder 进行构建;当构建一些短暂存活的对象时我们可以尝试 使用 @Accessors 实现链式构造 + final 实现字段必填 的方式。

    47920

    鸿蒙南向开发——GN快速入门指南

    建立一个构建目录:gn gen out/my_build配置构建参数在你的构建目录上运行设置构建参数:gn args out/my_build这将弹出一个编辑器,在该文件中输入build args,像这样...:is_component_build = trueis_debug = false可用的变量将取决于你的构建,你可以看到可用参数的列表和它们的默认值。...通过键入:gn args --list out/my_build可以看到可用的参数列表和默认值,这个命令必须指定编译目录,因为不同的目录有不同的参数值。.../out/tutorial你应该看到 Hello from the tutorial.输出到控制台。题外话:GN鼓励静态库的目标名称不是全局唯一的。...你可以在verbose模式下运行GN,以看到很多详细过程,使用-v参数就可以:$ gn gen out -vUsing source root /home/hui/disk4t/codes/gn/examples

    28810

    COC 来啦!!!困扰许多人的代码安全,终于找到解决办法了!

    今天给大家推荐一款社区开发者「陈皮皮」的最新作品:COC 混淆插件 COC全称是:ccc-obfuscated-code,为什么要取这个名字呢?因为我猜想大多数人都玩过或听过 COC 这个词吧!...] (建议两步进入) 在弹出的COC 混淆工具面板上,勾选构建后自动混淆选项即可 新手引导 start 一般情况下,在我们仅需要在项目开发内部测试之后才会开启混淆功能,只需要将构建后自动混淆勾选上...sourceMap 类型:boolean| 默认值:false 生成混淆后的代码的 source map 。 Source maps 对于调试混淆后的代码很有帮助。...sourceMapMode 类型:string | 默认值:'separate' 指定 source map 的生成模式。...inline - 发送包含 source map 的单个文件而不是生成单独的文件。 separate - 生成与 source map 对应的 '.map' 文件。

    89330

    Elasticsearch Mapping

    新字段不会添加到mapping中,这些字段既无法被索引也无法被搜索 strict 如果检测到新字段,那么会抛出异常,进而导致文档写入失败 2.5 doc_values doc values是一种在索引文档时构建于磁盘的数据结构...默认值为true。..."relation": "eq" }, "max_score": null, "hits": [] } } 很明显,并没有搜索到文档,这是为什么呢...通常这无关紧要,因为该字段值已经是_source字段的一部分,默认情况下,_source字段是已存储的。store参数默认值为false,那么什么时候建议将其显式置为true呢?...3.1 Field Type 3.1.1 Metadata Field 元字段 描述 _id 文档唯一标识 _source _source字段包含索引文档时传入的原生JSON;_source字段本身不会被索引

    87830

    文件大小写引发的问题

    点击上方蓝色字体,关注我们 在 Jenkins 构建一个之前的前端项目突然就报错了: 由于更改的代码太多具体改的什么我也忘记了,只能看看 Jenkins 构建留下的日志: 意思应该是:没有找到 Ruler...可是我看了一下代码仓库中的文件还在: 之前确实改了 Ruler 组件,但是为什么说找不到呢?...改完后把代码推到仓库却看到两个文件: 然后我又看了下文档: 看来官方还是不推荐直接改 ignorecase 的默认值,那我们该如何使文件大小写更改能被 git 识别呢?...> git mv [-v] [-f] [-n] [-k] ......虽然问题解决了,但是我没有找到更好的规避方法,下次可能还会直接修改文件名而不是通过 git 命令,若有什么更好的方法,请留言!

    76720

    详解Java中的注解

    注解可以做什么 Java中的注解通常扮演以下角色 编译器指令 构建时指令 运行时指令 其中 Java内置了三种编译器指令,本文后面部分会重点介绍 Java注解可以应用在构建时,即当你构建你的项目时。...构建过程包括生成源码,编译源码,生成xml文件,打包编译的源码和文件到JAR包等。软件的构建通常使用诸如Apache Ant和Maven这种工具自动完成。...实际上在子类中重写父类或接口的方法,@Overide并不是必须的。...注解元素默认值 对于注解中的元素,我们可以为其设置默认值,使用方法为 1 2 3 4 5 6 @interface MyAnnotation { String value() default...RetentionPolicy.SOURCE 表明注解仅存在源码之中,不存在.class文件,更不能运行时可见。常见的注解为@Override, @SuppressWarnings。

    59310

    Spring拓展接口之BeanFactoryPostProcessor,占位符与敏感信息解密原理

    完成我们想要的操作;   重点应该是:用来干什么   上述占位符的例子是BeanFactoryPostProcessor的应用之一,但这是spring提供的BeanFactoryPostProcessor拓展,不是我们自定义的...private String decryptSuffix = "]"; // 解密后缀标志 默认值 private String decryptKey...@#$world"; // 解密可以 默认值 @Override public void setEnvironment(Environment environment...  为什么DecryptConfig实现了BeanFactoryPostProcessor,将DecryptConfig注册到spring之后,DecryptConfig的postProcessBeanFactory...BeanFactoryPostProcessor,这个顺序还是值得大家注意下的,如果我们自定义的多个BeanFactoryPostProcessor有顺序之分,而我们又没有指定其执行顺序,那么可能出现的不是我们想要的结果

    1.3K10

    Java 注解 学习笔记

    我们平常写Java代码,对其中的注解并不是很陌生,比如说写继承关系的时候经常用到@Override来修饰方法。但是@Override是用来做什么的,为什么写继承方法的时候要加上它,不加行不行。...它们是在实际的源代码级别保存信息,而不是某种注释性质的文字,这样能够使源代码整洁,便于维护。它可以在三个时期起作用,分别是编译时,构建时和运行时。...他们可以在编译时使用预编译工具进行处理,也可以在构建时影响到Ant,Maven等打包工具,还可以在运行期使用反射机制进行处理。...使用default关键字可以为一个元素增加一个默认值。 使用的时候除了带有默认值的元素,需要把所有的元素的值填满。 元注解 Java目前内置了四种元注解。...默认值的限制 所有元素要么有指定的值,要么有默认值; 非基本类型的值,无论是指定值还是默认值都不能用null。 注解不支持继承 不能使用extend来继承某个@interface类型。

    56110

    面向 C++ 的现代 CMake 教程(五)

    在一个如此小的项目中,这并不是真正的必需品,但它将帮助我们练习这个概念。 统一构建将不再必要——项目不会足够大,以至于添加它们值得。...它们之间有什么实际的区别,为什么要提供两个库? 共享库与静态库 我们在第六章中简要介绍了这两种库,使用 CMake 链接。...再次,我们将推迟讨论测试和文档,而是查看依赖管理和构建信息生成。 请注意,我们倾向于使用实用模块而不是 find-module 来引入 FTXUI。这是因为这个依赖项不太可能已经存在于系统中。...注意,在库的情况下,我们必须添加 instrumentation 到 对象库 而不是静态库。这是因为 --coverage 标志必须添加到编译步骤,这发生在 calc_obj 正在构建的时候。...list(SUBLIST ) 类似于 GET 模式,但它操作范围而不是明确的索引。

    14800

    Python中调用sklearn决策树

    min_impurity_split=None, class_weight=None, presort='deprecated', ccp_alpha=0.0) 部分参数详解: criterion:构建决策树寻找最佳节点和最佳分枝时可选的两种衡量标准...默认值None,即节点将展开到所有叶子都是纯的或直到所有叶子都含有少于最小分割的样本。 min_samples_split:拆分内部节点所需的最小样本数,默认值2。...默认值0,即不考虑权重问题,所有样本权重相同。 max_feature:分枝时考虑的最大特征数,默认值None,即考虑所有特征。如果数据类型为int,该值为每次分枝的最大特征数。...max_leaf_nodes:最大叶子节点个数,默认值None,即不限制最大的叶子节点数。...presort:拟合之前对数据进行预排序来加快树的构建。如果数据集非常庞大,预排序反而会导致整个分类变得缓慢,当数据集较小,且树的深度有限制时,采取预排序才会加速。

    3K81
    领券