问题标签 [build-process]
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.
git - 使用分布式版本控制时的构建顺序
现在,我们正在使用 Perforce 进行版本控制。它有一个方便的特性,即严格增加的更改编号,我们可以使用它来引用构建,例如“如果您的构建至少为 44902,您将获得错误修复”。
我想改用分布式系统(可能是 git),以便更轻松地进行分支和在家工作。(Perforce 完全可以实现这两者,但 git 工作流有一些优势。)因此,尽管“附属开发”将是分布式的,而不是指通用的修订顺序,但我们仍然会维护一个主 git 存储库,所有更改都会需要在创建构建之前输入。
保留严格增加的构建 ID 的最佳方法是什么?我能想到的最直接的方法是有某种 post-commit 钩子,只要主 repo 更新就会触发,它会注册(哈希)新树对象(或提交对象?我是新手git) 带有一个分发 id 的集中式数据库。(我说“数据库”,但我可能会用 git 标签来做,只是寻找下一个可用的标签号或其他东西。所以“数据库”实际上是 .git/refs/tags/build-id/。 )
这是可行的,但我想知道是否有更简单、已经实现或标准/“最佳实践”的方式来实现这一点。
visual-studio - 如何在 VS 2008 Post-Build 事件中使用系统环境变量?
如何在我的项目构建后事件中使用系统环境变量,而无需编写和执行外部批处理文件?我认为这就像创建一个名为的新环境变量LHDLLDEPLOY
并在我的构建后事件文本框中编写以下内容一样简单:
......但是,唉,不。构建输出显示它将文件写入“ %LHDLLDEPLOY%
”文件夹(1 file(s) copied
两次“”),但文件不在等价路径中,并且没有名为“ LHDLLDEPLOY
”的新文件夹
他们实际上去了哪里,我该如何正确地做到这一点?
(更新:Xavier$(LHDLLDEPLOY)
做到了。此外,在我重新启动机器以刷新环境变量后,他的变量格式有效。)
(更新 2:原来我不必重新启动我的机器。我只需要确保我 a)关闭了环境变量列表窗口,并且 b)关闭/重新启动了 Visual Studio。)
visual-studio - Visual Studio bin\debug 文件夹中的 PDB 文件
我有一个由多个项目组成的 Visual Studio (2008) 解决方案,并非所有项目都在同一个命名空间中。当我构建解决方案时,顶层项目TopProject使用的所有 DLL 文件都被复制到TopProject\bin\debug文件夹中。但是,相应的 .pdb 文件仅针对其他一些项目进行复制。这是一种痛苦,例如在使用NDepend时。
Visual Studio 如何决定将哪些 .pdb 文件复制到更高级别的 bin\debug 文件夹中?我怎样才能让 Visual Studio 也复制其他人?
参考如下:所有的 DLL 文件都复制到一个中心位置,没有它们的 PDB 文件。TopProject 只引用了这些复制的 DLL 文件;然而,DLL 文件本身显然知道它们的 PDB 文件在哪里,并且(其中大多数)被debug
正确复制到文件夹中。
visual-studio - Visual Studios Link.exe 错误:“额外操作数”
我们的构建过程使用 Visual Studios 2003 link.exe 进行链接。在一台机器上,我们看到以下错误:
它似乎使用与其他机器相同版本的视觉工作室。有没有人遇到过这个问题?
c# - 如何在 C# 中运行一系列进程并保持其环境设置?
我正在开发一个自动构建器,它将在我们的构建过程中运行一系列步骤并构建我们的目标应用程序。我们曾经使用一个批处理文件来设置一堆环境变量或调用工具来设置环境变量并最终运行“make”。
我一直在使用“进程”类,它非常适合运行这些命令,但不幸的是,每次运行都会改变环境(比如在 PATH 中添加一些东西),当“进程”完成时,这些变量就会丢失。下一个“进程”被实例化并再次从“调用”应用程序(我的 exe)继承环境 - 这意味着最后一个命令设置的所有环境都丢失了。你如何处理这种情况?有没有更好的方法在 C# 中运行一系列类似批处理文件的命令并维护它们设置的环境?
请注意,不幸的是,老同学已经声明 nant/ant 不是一个选项,所以“嘿,为什么不使用 Nant - 它就是这样做的!” 不是我要找的答案。
谢谢。
ruby - 有人用过瑞文吗?
你觉得这个构建工具怎么样?我正在考虑从 maven2 迁移到 raven(我的 pom 越来越大),但我想先听听一些意见。
谢谢!
@安德烈:
感谢您的写作,但我实际上是在寻找使用 raven 的真实体验。无论如何,没有人写的事实本身就是一个指标(似乎很少有人使用它)
msbuild - 与从命令行运行 DevEnv.exe 相比,使用 MSBuild 或 NAnt 的优势
谁能解释使用像 MSBuild(或 NAnt)这样的工具来构建项目集合与从命令行运行 DevEnv.exe 相比有什么优势?
我过去共事过的一位同事解释说(至少在旧版本的 Visual Studio 中)使用 DevEnv.exe 比其他技术慢得多,但我还没有读到任何证据,或者如果那现在是现在有争议的一点是,从 2005 年开始,Visual Studio 在后台使用 MSBuild。
我知道使用 MSBuild 的一个优势是让您无需在构建机器上安装 Visual Studio 即可构建您的项目,但我不确定是否还有其他优势。
java - 限制 Java 包之间的依赖关系
在 Java 构建系统中对包依赖项实施限制的可能性有哪些?例如,myapp.server.bl.Customer
不应允许类引用myapp.client.ui.customlayout
包。我对基于 Ant 或特定于 IDE 的解决方案感兴趣。
我想在构建中收到一条错误消息,表明(自定义)包依赖规则已被违反并且构建中止。我还想在 Ant 脚本或 IDE 项目文件之外的列表中维护依赖项,最好是在文本文件中。
(我不知道 Maven 但我在这里读过它对模块依赖管理有更好的支持)
visual-studio - 如何仅为调试构建运行 Visual Studio 构建后事件
如何将我的构建后事件限制为仅针对一种构建类型运行?
我正在使用这些事件将 DLL 文件复制到本地 IIS 虚拟目录,但我不希望在发布模式下的构建服务器上发生这种情况。
c# - 创建 MSBuild 自定义任务以修改 C# 代码 *before* 编译
我想创建一个自定义 MSBuild 任务,在 csc.exe 编译它们之前更改我的 .cs 文件(但是,当然,这并没有就地修改它们 - 我不希望触及实际的源文件)。我知道 PostSharp 和其他用于 .NET 的 AOP 框架,它们不是这个特定项目的选项,而且我想学习如何做到这一点。
我必须做些什么才能让它发挥作用?
谢谢理查德