问题标签 [build]
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 - CruiseControl.NET Build Label & SourceGear Vault 实践相关问题
我将 SourceGear Vault 和 applyLabel="true" 用于一个项目,因此当它构建时,它将在 SourceGear Vault 中为相应的项目创建一个标签。我的问题是
我有一个夜间构建,所以如果那天我没有对该项目进行任何更改,那么我该如何定义我的设置....
问题是我不想要代码没有更改的构建标签。
任何帮助表示赞赏。
debugging - 是否有任何系统可以记录或跟踪您在开发过程中遇到的错误类型?
我本身并不是在寻找错误跟踪。但更像是一个构建工具:作为一名开发人员,如果每次编译或尝试运行代码时,我都可以重定向调试输出并记录我最常引入的错误、解决它们需要多长时间等,那就太棒了。
外面有这样的东西吗?
language-agnostic - 语言无关的构建管理系统
在我的职业生涯中,我曾在一个软件团队工作过几次,该团队确定
a)我们需要一个构建/测试系统
b)我们应该编写自己的
c)我们可以让开发人员花一周时间完成它,他们应该不必再碰它
每次,这都会导致一个系统似乎只对编写它的人有效,并且需要他们不断关注。我曾多次花时间寻找可以满足我们需求的工具,但空手而归。一般来说,像这种服务器这样的工具市场非常狭窄。我又需要这样的东西了。那里有什么东西,还是我们再写一次?
以下是我的优先级要求(最后几个很好):
能够处理多项目构建。我们有几个组件,它们既提供其他组件使用的东西,也使用其他组件的东西。开发人员应该能够签出 1 个组件并进行更改,而无需构建世界。项目外部的依赖项应该自动引入。因此,某种能够将构建的对象推送和拉取到服务器的方法对此至关重要。另一个方面是能够将所有依赖项下拉到本地目录以便在路上进行开发。
不要担心事情是如何构建的。这可能听起来很奇怪,但我不希望构建系统担心编译我的代码。已经有很好的工具可以为每种语言执行此操作——Ant、CMake 等。我只想告诉它调用什么来构建东西,以及它应该关心什么输出。这样,项目 A 可以是 Java,项目 B 可以是 C++,你明白了。
有一些方法可以在输出上运行测试
在网页上显示当前的构建/测试结果
通过电子邮件发送结果
与 RCS 集成(我们使用 svn)
eclipse - Eclipse 3.4 ant 任务挂起
当我从 Eclipse 3.4.x 启动一个 ant 脚本时,它会将输出打印到控制台,直到某个阶段。之后它经常挂起(永远等待)。我在屏幕(控制台)上看到的最后几行 - 我的混淆器的部分输出。
在 Eclipse 3.3.2 下一切正常(相同的项目、工作区、设置、JVM 等)。
有人有同样的问题吗?任何想法如何解决它?
c++ - 为 C++ 构建解决方案
我想为在 Visual Studio 2005 中开发的非托管 C++ 代码设置构建服务器。构建服务器应该能够执行以下操作:
- 监控 Subversion 存储库的代码更改并安排构建
- 从 Subversion 签出代码并运行单元测试
- 提供有关构建成功和先前构建更改的某种报告
我最初一直在考虑将 CruiseControl 与 Ant 一起使用。有更好的解决方案吗?也许 CruiseControl.Net 和 NAnt?
testing - 用于验证文件名和格式的预先存在的工具
我们必须验证大量资源文件的命名约定和格式完整性等。
是否有可用的框架/工具使这更容易?我想到了像 Ant/Phing 这样的构建工具,但我想知道是否有更专注于这种测试的东西。
理想情况下,它将根据修改时间缓存结果并生成不合格文件的报告。它应该足够灵活,可以快速轻松地将任意测试添加到适合某个正则表达式的文件中。就像测试所有位于 3 个目录深处的 *.psd 并确保它们的颜色空间是 CMYK。添加依赖关系也应该很容易,这样如果其中一个 PSD 失败,父目录 .. 说 2 级,也会被标记为无效。理想情况下,它是可插入的,因此我们可以编写一个 shell 脚本或其他东西来执行返回 true/false 的新测试(如 CMYK 测试)。
当然,我们可以自己动手……但不要重新发明轮子。
想法?
c++ - Visual Studio 中的复杂构建
我有一些事情在 Visual Studio 中找不到执行的好方法:
预构建步骤调用一个代码生成器,该生成器生成一些稍后编译的源文件。这可以通过在项目中添加空白文件(稍后将其替换为真实生成的文件)在有限程度上解决,但如果我不知道名称和/或自动生成的源文件的数量,它就不起作用。我可以很容易地在
GNU make
使用中解决它$(wildcard generated/*.c)
。如何使用 Visual Studio 做类似的事情?如果不需要修改文件(
"make"
行为),我可以阻止预构建/构建后事件运行吗?当前的解决方法是编写一个为我检查时间戳的包装器脚本,它可以工作,但有点笨拙。找到安装在 VS 之外的外部库和头文件的好方法是什么?在 *nix 的情况下,它们通常会安装在系统路径中,或者使用
autoconf
. 我想我可以在项目设置中使用用户定义的宏指定路径,但是在哪里放置这些宏以便可以轻松找到和调整它们的好地方?
为了清楚起见,我知道存在更好的 Windows 构建系统(CMake
, SCons
),但它们通常会自己生成 VS 项目文件,我需要将此项目集成到现有的 VS 构建系统中,所以我希望我只有普通的 VS项目文件,而不是生成的文件。
.net - 复制本地如何工作?log4net.dll 没有被复制到 MyProject 输出目录
我想知道引用的 copy-local=true 到底是做什么的。它是否将引用的程序集及其所有依赖项复制到输出目录?
我的场景如下:我有一个使用 log4net 的自定义日志包装器。我构建了一个 MyLogWrapper.dll 的发布程序集,其中 log4net.dll 引用设置为 copy-local true。从 MyProject 引用 MyLogWrapper.dll 并将本地复制设置为 true 应该会导致 log4net.dll 也被复制,对吗?我只在 MyProject 中引用 MyLogWrapper.dll 而没有它的依赖项。log4net.dll 没有被复制到 MyProject 输出目录,但 MyLogWrapper 的所有其他依赖项都是。可能是什么问题呢?
我做了更多的实验,似乎如果我从 GAC 中删除程序集(log4net.dll),它就会开始在本地复制。谁能确认这是问题所在?
audio - 您使用哪组构建声音?
像 CCTray 这样的应用程序允许指定一个声音片段来指示构建成功或构建失败。我很想听听不同团队使用的声音集。
这是我们使用的两组:
- Homer Simpson:“d'oh”表示构建失败,“woohoo!” 为了成功
- 马里奥兄弟:构建失败时关闭声音,构建成功时加电,构建修复时 1-up
c++ - 如何自动创建具有最新编译时间的文件并将其包含到库中?
我有一个包含大约 100 个源文件的库。如果已编译任何其他文件,我希望始终重新构建其中一个源,但我不希望每次运行 make/build 时都构建它。
基本上我希望这个文件有最后的构建日期/时间,所以任何链接到库的应用程序都可以检查最后的构建时间/日期。有没有其他方法可以做到这一点?