问题标签 [build-system]

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.

0 投票
3 回答
488 浏览

linux - linux构建系统工具

我们的项目变得相当大,我们的构建系统不再扩展。我们正在linux机器上进行跨平台开发。我们有太多的平台可以构建,甚至更多的构建选项。我们认为我们需要升级基于 Makefile 的构建环境。

这些是要求(在理想世界中):

  • 快速(所以没有 libtool)
  • 可以进行并行构建
  • 交叉编译友好
  • Ccache 集成
  • 如果满足某些条件,增量构建是否会短路(如果 a、b、c 选项未更改则短路,如果更改则重建)
  • 易于编写脚本(python 集成将是完美的)
  • 用户友好的语法
  • 分布式系统。模块可以相互分开开发
  • 可以构建第三方库(使用自动工具、cmake ..)
  • 可以跟踪模块之间的依赖关系(但足够灵活,以便模块可以被替代的外部模块替换)。
  • 内置单元测试支持
  • 大型二进制文件可以与版本控制分开存储,如果需要可以下载
  • 可以跟踪开源许可证
  • git集成

您是否知道可以满足(至少部分)这些要求的任何工具(或工具组)?目前我倾向于gyp+ninja。但是语法不是很友好,也没有文档。所以这是一个艰难的销售。

0 投票
1 回答
180 浏览

mono - Phantom 构建系统可以在 Mono 下工作吗?

我正在研究 .Net 项目的跨平台构建系统。 Phantom看起来很有趣,但是我想知道它是否可以在带有 Mono 的 Linux 上正常工作。它建立在 Boo 之上。似乎 Boo 在 Mono (http://www.mono-project.com/Boo) 中有一些支持,但我对此不太了解。

我可以在 Mono/Linux 设置上使用 Phantom 吗?

0 投票
2 回答
2730 浏览

emacs - 如何调整 Emacs 的 compile-goto-error 从编译缓冲区获取的路径?

我正在使用 Emacs 23 并遇到以下问题:

我从 Emacs 中运行我们项目的构建系统,例如 Mx compile -> cd /foo/bar && ./build

构建系统现在做了一些魔术,“cd”进入构建过程的某个子目录,然后 gcc 抛出一个错误:

../src/somesource.cc:50 错误:blablabla

现在的问题是 Emacs 找不到那个路径,因为它假定编译过程是在 /foo/bar 中开始的,而不是在 /foo/bar/builddir 中。因此,前导“../”不适用于 Emacs,例如在运行 compile-goto-error 时。有没有办法告诉 Emacs 尝试跳过前导“../”?

0 投票
1 回答
91 浏览

unit-testing - 如何构建系统进行单元测试?

当您在修补 Make、ant 或任何其他构建工具时,您实际上是在编写代码。

为什么没有“MUnit”或“ANTUnit”来测试这些代码?这样做是有意义的,因为项目构建系统中的任何错误都会给使用它的人带来巨大的延迟和挫败感。

一个例子(注意:这甚至可能不起作用 - 未经测试,这也不是我的重点):

但现在我希望我的目标文件在一个单独的构建文件夹中:

哦是的!这样可行!犯罪!犯罪!

(但是......持续集成服务器没有“构建”文件夹......)

哦不……团队的构建失败了……我应该受到责备……愚蠢!

如果能够指定一个模拟项目、一个模拟文件夹结构,然后调用make all,并验证 main.out 是否存在(并且可以运行) ,那就太好了

所以这里的问题:

我有哪些选项可以“单元测试”我的 make 脚本?我注定要编写大量的测试外壳脚本,还是已经存在某些东西?

0 投票
2 回答
115 浏览

c++ - 进行安装与就地链接

当以拓扑排序的顺序构建多重依赖 C++ CMake 项目(在 Linux 中)时,我们有两种可能性:

遍历每个项目,然后...

  1. ...在某些前缀中“进行安装”。在项目中构建库时,链接到已安装的库

  2. ...通过“make”构建它,不要安装。在项目中构建库时,链接到已构建的库就地

这些选择的优点/缺点是什么?由自制脚本执行的构建,它解决依赖关系,以正确的顺序构建等。

0 投票
1 回答
1891 浏览

c - Sublime text 2 C .so 构建系统

我在 opengl 项目中使用 python 并用 C 语言编写我自己的 gl 库。我使用 Sublime Text 2 并且需要构建系统来创建 .so 并按下 crtl-b。

0 投票
3 回答
16211 浏览

java - Sublime Text 2 构建系统在新的终端/命令提示符窗口中编译和运行 Java?

我想在 Sublime Text 2 中创建一个构建系统,它将编译一个 Java 文件,然后在的终端(对于 OS X 或 Linux)或命令提示符(对于 Windows)窗口中运行它。

原因是因为 Sublime Text 2 不允许用户输入任何内容,所以任何需要输入的程序在 Sublime Text 2 中运行时都会报错,如下所示:

这是我目前拥有的(我也尝试了一个批处理文件),但它只是在 Sublime Text 2 中运行,而不是在新的 shell 中运行:

这可能吗?如果是这样,请逐步解释(我是 Sublime Text 2 的菜鸟),如何做到这一点;我已经尝试在 Sublime Text 2 论坛上发帖,但到目前为止还没有运气!我会感激不尽。谢谢你的时间!

0 投票
3 回答
1786 浏览

.net - 使用 CCNET 1.8.2 版中的条件参数更改 svn 位置

我正在尝试为我们的应用程序设置构建服务器。在进行强制构建时,我想使用参数来确定要构建的内容。下面我的设置可以在 DEV 中运行,主要是因为 if 语句是设置的一个片段。无论我选择 QA 还是 UAT,它总是错误的。以前有没有人尝试过用 Cruisecontrol.net 做到这一点?

我查找并发现的一件事是替换变量,但我不确定如何将它们用于这样的设置。

任何帮助将不胜感激。

0 投票
2 回答
109 浏览

java - Java Jar 包:它们是否/可以包含所有非 JDK 库?

可能重复:
是否可以使用自定义清单文件创建一个包含项目类和项目依赖项的“超级”jar 作为 jars?

我正在研究多平台部署。在 Perl 和 Python 等语言中总是令人沮丧的关键事情之一是部署第三方库和第二方库。

我想知道 java 构建过程是否允许将程序使用的所有非 JRE 库打包到 jar 中,以便可以将其部署到任何地方而无需安装到任何其他目录中。

0 投票
3 回答
682 浏览

android - I find two gradle android plugin - Is there any relation between the two?

I was trying to find out how to build Android application with Gradle. To my surprise I found two references, one from jvoegele and another from Android Tools Project site. They appear to be different prima facie. So my question is why there are two variants? Is there any relation between the two? What are their current status? Which one I should use - their pros and cons? It seems the Android one is just started.

I am looking forward to some valuable inputs from guys who have first hand experience in building Android application with Gradle.

Thanks and regards

Santanu