问题标签 [build-automation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
build-automation - nmake 有构建任务吗?
使用Ant,我可以在继续构建之前解压缩档案......这可以使用 nmake 吗?我可以调用外部应用程序吗?甚至是批处理脚本?
msbuild - MSBuild - 获取从命令行调用的目标
有谁知道如何获取从 MSBuild 命令行调用的目标 (/t) 的名称?可以调用几种类型的目标,我想在给用户的通知中使用该属性。
例子:
我想访问ApplicationDeployment
我的 .Proj 文件中的目标词。
有我可以访问的财产吗?任何线索如何做到这一点?
编辑:我不想也传递一个属性来获得这个。
更新:这是基于使用 MSBuild 脚本的部署脚本。我的构建服务器不用于部署代码,仅用于构建。构建服务器本身具有可以选择加入的构建通知。
vb6 - VB6 与 MSBuild 的集成
因此,对于必须在 Team Build/MSBuild 环境(特别是 Visual Basic 6 应用程序/项目)中集成遗留项目/代码的构建/编译的任何人来说,这是一个问题。
除了编写自定义构建任务(我不反对)之外,是否有人对如何最好地将遗留 VB6 项目的编译和版本控制集成到 MSBuild 构建中有任何建议?
我知道CodePlex的 FreeToDev msbuild 任务,但它们目前已被撤回。
理想情况下,我正在寻找版本和编译代码以及捕获 msbuild 日志的编译输出(尤其是错误)。
我已经看到有关将此功能封装在自定义任务中的建议,但真的想知道是否有人尝试过另一种解决方案(除了执行 shell 命令)-本质上,是否有人有“更清洁”的解决方案?
理想情况下,使用执行命令将是最后的手段。
eclipse - 如何在 Eclipse 项目中使用持续集成?
我一直在使用 maven2 和 hudson 进行持续集成,但我发现 Eclipse 和 Maven 不能很好地配合使用。当然有一个插件,但是将 maven 项目混搭成 eclipse 喜欢的东西,构建时间和单元测试太长了。我正在考虑切换回一个没有 ant 和 maven 的纯 Eclipse 项目。使用无限的插件和可能的 JavaRebel 代理,它会给我一个非常快速的构建-部署-测试周期。但是我仍然希望有自动和测试,所以:
如何在 Eclipse 项目中使用持续集成?
有命令行方法吗?
是否有本地已经支持它的构建服务器?
java - Maven 2 的最佳企业存储库工具?
SO 上的其他一些问题和答案赞扬了使用企业存储库工具(如 Archiva、Artifactory 或 Nexus)的优点。各自的优缺点是什么?我如何在它们之间进行选择?
如果有帮助:
- 我们同时使用 Maven 1 和 Maven 2(至少有一段时间)
- 我们希望存储内部生成的工件、公开可用的工件(ibiblio、codehaus 等)和专有的工件(例如 Sun 的许可 JAR,如 Servlet API)。
- 我们想要在 Windows、Linux 或两者上运行的东西。
- 我们使用 Luntbuild 作为我们的 CI 服务器(但打算在一段时间内迁移到 Hudson)。
maven-2 - 如何在没有 svn:externals 的情况下使用 Maven 模块?
我从来没有完全理解我将如何/为什么要使用 Maven 模块(反应堆构建)。
我们有数十个库,我们在产品之间以及库之间共享(作为依赖项)。如果我们要切换到使它们成为 Maven 模块,我们将如何在 SVN 和我们的工作副本中进行设置?
Maven 模块真的需要是子文件夹吗?它们是否也需要成为 SVN 存储库中的子文件夹?
假设您只需要工作副本中的子文件夹,我想svn:externals
可以使“util”库同时成为多个项目的模块。但是我读过很多关于使用的坏事,svn:externals
因为没有什么可以阻止你修改外部代码,但它没有被跟踪。
有什么建议么?我错过了模块上的船吗?
build-process - 防止对话框出现在无人参与的构建中
我想知道是否有一种万无一失的方法可以在 Windows 上运行程序,这样我就可以保证不会显示任何类型的交互式对话框。
我已经尝试过注册表ErrorMode hack,调用_CrtSetReportMode() 等,但它们都有漏洞或者需要你修改程序。
我需要一种方法来运行任意程序并实际上强制 Windows 执行它们,这样它们就不可能打开窗口。如果它试图打开一个窗口,程序崩溃是完全可以的。
将程序作为服务运行会解决问题吗?
sql-server - 比较工具以生成 SQL Server 更新脚本
我想让 Web 应用程序的更新尽可能自动化。
我正在寻找一种可以比较数据库的两个实例并为我生成更新脚本的工具。作为构建过程的一部分,创建数据库的最后一个版本(即当前处于生产中)的实例,并将其与开发版本上的更改进行比较。
任何输入表示赞赏。
cross-platform - 跨平台构建环境
作为优秀的开发人员,我们尽可能保持代码符合标准,以帮助在平台之间进行移植。但是有哪些工具可以帮助我们以统一的方式跨多个平台构建代码。
*nix 家族有make
但 Windows 需要nmake
。
我读过关于SCons的文章,但从未在愤怒中使用它。你最喜欢的构建工具是什么,为什么你觉得它有效,是否有任何限制(即支持不良的平台等)。
跨平台 IDE 也是如此。
com - ActiveX / COM / VB6 企业项目的构建过程
我们使用微软的 ActiveX/COM (VB6) 技术开发了一个软件系统。去年,我对自动化构建过程和整个 SCM 越来越感兴趣。我在网上大量搜索了有关如何使用基于 COM 的软件系统进行 scm 的最佳实践的信息。
COM 的“问题”是,引用组件通过唯一的接口 id 保存引用。当您重新编译引用的组件时,id 可能会更改并且引用不再有效。这里的主要问题是,iid 被编译成二进制文件。因此,当我不想将编译后的文件签入版本控制时,每个开发人员都必须编译他/她自己的版本并获取其他 id。
当我想在干净的构建机器上检查源代码来编译系统时,这是不可能的,因为所有的引用都是无效的(没有二进制文件,没有接口 id)。
我只是想知道,如果有一些最佳实践,如何为 COM 项目(VB6)设置自动构建系统?
编辑: 是的,我知道兼容性设置。但是以这种情况为例,我想在没有任何二进制文件的干净构建机器上构建 wohle 系统。当您说项目兼容二进制时,您必须提供与该项目兼容的二进制文件。
我想我必须编写一个自定义构建工具,它在编译项目之前和之后修改项目文件中的引用和兼容性设置。
因为 VB6 / COM 是一种非常广泛的技术,我只是想必须有一个现成的解决方案。
我们通常使用二进制兼容性进行编译。当我们修改一个组件的公共接口时,我们以项目兼容性进行编译。但是当你改变一个被许多其他组件使用的基本组件的接口时,你必须手动将所有引用项目更改为项目兼容性,重新编译它们并改回二进制兼容性。这就是我想要自动化的主要过程。