Questions tagged «builds»

最简单的构建类型是将(源)代码转换为可运行的已编译二进制文件的过程。更复杂的构建也可以运行单元测试或集成测试,并可以使用工具生成有关代码质量的报告。最后,构建通常是由持续集成(CI)系统自动触发的。

3
为什么“ make”中的增量构建不使用哈希算法?
我是的初学者,make我想知道何时使用make clean。 一位同事告诉我,增量构建make基于文件时间戳。因此,如果您在VCS中签出文件的旧版本,则它将具有“旧”时间戳,并将其标记为“无需重新编译此文件”。然后,该文件将不会包含在下一个版本中。 根据同一位同事的说法,这是使用的理由make clean。 无论如何,我make clean从其他StackExchange问​​题中大致得到了“何时使用” 问题的答案,但是我的另一个问题是: 为什么使用make依赖文件时间戳而不是例如SHA-1进行增量构建?例如,Git显示我们可以成功确定是否使用SHA-1修改了文件。 是为了速度问题吗?
10 builds  make 

9
应该期望开发人员在实际程序之前编译内部库吗?
最近,与我合作的一位高级开发人员提出了一个要求开发人员获得最新版本并在其项目中编译一个主要内部库的理由。与此相反,相反的说法是,项目团队应该使用他们从内部Maven存储库中获得的稳定版本,开发人员认为开发人员认为在开发人员机器上拥有源代码可以节省时间,因为他们可以读取库源代码代码以确定所需的功能是否可用。 高级开发人员是否有有效论点?还是要求开发人员阅读库的源代码与封装的基本原理背道而驰,甚至将库放在首位?

1
使用TFS构建过程模板(工作流)进行部署
我正在考虑将TFS Build工作流用于复杂的部署。我们有一些可能需要部署: Web应用程序和服务 数据库 SSRS报告 SSIS软件包 谁知道 我喜欢这样一个事实,我可以为工作流提供一些基本参数,例如要部署的构建以及它将运行的构建。潜在地,某些部分可能需要人工批准,而且我知道工作流也可以处理。一个示例是,我们可能使用工作流从Visual Studio数据库项目中创建更改脚本,但是DBA组希望在运行脚本之前对其进行批准。 我想知道过去是否有人为此使用过“构建”,以及发现了什么问题。

2
Automake-如何保持源代码树干净?
我有一个使用GNU自动工具构建自身的项目。我试图进行修改,以便自动工具在单独的目录中生成所有非版本控制文件,以便使源树中的临时文件保持清洁。任何人有任何想法如何做到这一点?
10 builds 

9
.NET产品组合的自动构建平台-最佳选择?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 我参与维护相当大的.NET应用程序组合。该产品组合中还包括基于其他平台(本机C ++,ECLIPS Forms等)构建的旧应用程序。 我现在在NAnt上有一个复杂的构建框架,该框架管理所有这些应用程序的构建。构建框架使用NAnt做许多不同的事情: 从Subversion中提取代码,并在Subversion中创建标签 使用MSBuild for .NET或其他平台的编译器生成代码 窥探AssemblyInfo文件以增加版本号 删除某些不应包含在构建/发行版中的文件 将代码发布到部署文件夹 压缩代码以进行备份 部署Windows服务;启动和停止它们 等等。 其中大多数事情都可以单独使用NAnt来完成,但是我们确实为NAnt构建了一些扩展任务,以完成某些特定于我们环境的事情。同样,上述大多数过程在我们许多不同的应用程序构建脚本中都得到了通用和重用,因此我们不再重复逻辑。因此,它不是简单的NAnt代码,也不是简单的构建脚本。有数十个NAnt文件一起执行构建。 最近,由于以下几个原因,我对NAnt感到不满意:(1)它的语法太糟糕了-XML之上的编程语言真的很难维护;(2)该项目似乎已经死了;最近没有大量更新,似乎没有人真正掌舵。由于缺乏活动,尝试使其与.NET 4配合使用已引起一些痛苦。 因此,在没有所有这些背景的情况下,这是我的问题。鉴于我希望根据上面的列表完成一些工作,并且鉴于我主要是在.NET商店中,但我还需要构建非.NET项目,是否有我应该考虑的NAnt替代品切换到? 我所关注的东西包括Powershell(带有或不带有psake),MSBuild本身以及rake。这些都有优点和缺点。例如,MSBuild是否足够强大?我记得几年前使用过它,它似乎没有NAnt那样强大。我是否真的想让我的团队学习Ruby,以便使用rake进行构建?psake是否真的足够成熟,可以将我的投资组合固定在项目上?Powershell是否“太接近金属了”,而我最终不得不编写自己的类似于sake的构建库才能单独使用它? 还有其他我应该考虑的工具吗?如果您参与维护非常复杂的.NET产品组合,那么您将要使用哪种构建工具?您的团队目前使用什么?

4
参数再次将二进制文件检入SCM
我在一家主要构建Java应用程序的公司工作,我试图说服所有人停止将二进制文件(依赖项和最终产品)检入SCM。 他们知道这是一个不好的做法,但是他们认为“有效”,即使很多人都了解Maven和除Ant之外的其他构建工具,这也不是真正的问题。经理和程序员(大约50人)都准备好听取任何反对意见,甚至承认这是对备份空间的浪费,但是我要说服自己,因为习惯的改变会涉及很多工作。您使用什么论据来支持变更? 编辑:好的,区分几乎不变的文件(如依赖项)和生成的文件是有意义的。即使这样,我还是有理由反对后者。
10 java  builds 

1
源内构建与源外构建
在我的(主要是C ++)开发中,我一直坚持使用源代码之外的版本。也就是说,我的来源通常坐落在一个/project/src目录和建立生活在一个/project/build/bin/release,/project/build/bin/debug目录。之所以这样做,是因为它可以使我的源目录与中间文件保持干净,我的所有二进制文件都位于一个位置,打包更容易,清理更容易,版本控制也更容易。(我有什么想念吗?) 我现在正在继承一个使用源代码内部构建的(大型)项目。这种结构的动机是什么,它的优点是什么?(我最关心的是工程级别的原因与个人喜好类型的原因。) 我希望拉科斯(Lakos)的“大型C ++软件设计”能在其中发挥作用,但如果这样做,我会错过它。

1
为什么Apache有两个分别用于构建和依赖管理的工具?
Apache有两个单独的工具: 阿帕奇Maven Apache Ant + Apache Ivy 他们似乎都填补了相同的利基。我有两个问题: 两种工具之间的主要区别有哪些亮点? 我确信可以写一篇很长的文章,探讨两者之间的区别,我不是在寻找太多细节,也不是在寻找一个主观的论点来选择一个。 编程的历史-Apache如何演变为创建两组完全独立的工具,这些工具最终在目的上如此相似?


4
连续构建服务器(cc.net,hudson,bamboo等)的远程构建经验?
当前,我们在构建过程中使用一次cc.net服务器,该服务器同时构建.net(使用msbuild和nant)和java(使用maven和ant)。 CC.net监视源代码控制,并触发在单独服务器上运行的远程版本。CC.net然后整理结果。 当我们运行远程版本时,通常: 使用模拟数据运行nunit或junit或类似数据 (可选)运行数据库脚本来创建新的数据库实例或从已知位置还原数据库。 运行硒或类似的东西来测试UI 运行emma或ncover进行代码覆盖 为各种部署环境(测试,验收,生产)构建系统 我们可能一次运行多个构建,一些.net和一些Java(来自不同的项目团队)。 设置新项目时,要使远程版本正常工作是很耗时的,并且我们认为必须有比cc.net更适合远程版本的内容。 有没有人对持续集成系统的远程构建有任何经验? 我真的不想要CI服务器的功能列表,如果您了解如何在多语言,多服务器环境中使用它们,我将不胜感激。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.