问题标签 [parallel-builds]

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 投票
4 回答
13517 浏览

makefile - 使用“make -jN”进行 cmake 和并行构建

我正在尝试为我的源代码树设置一个基于 CMake 的并行构建,但是当我发出

我得到:

作为警告。有没有人知道是否有可能以某种方式修复它?

0 投票
1 回答
3037 浏览

visual-studio-2008 - 使用带有 maxcpucount 选项的 MSBUILD 的问题

我在 4 核机器上使用 MsBuild。我提供以下命令行来构建属于大型 VC++ 解决方案的 4 个项目(拥有超过 4 个项目,全部没有相互依赖关系)。我正在使用 Visual Studio 2008。

为了加快构建时间,我试图利用这些maxcpucount选项,但它似乎不起作用。我期望每个核心都会构建我在命令行提供的 4 个项目中的每一个。不幸的是,我测量了建造时间,无论有没有maxcpucount选择,我都有相同的确切结果。

你知道我在这里做错了什么吗?

正确的说法是“一次构建 4 个 MyVCppSolution.sln 解决方案项目”还是我应该手动运行 4 个进程,每个进程构建一个解决方案的单个项目,最多 4 个?

0 投票
6 回答
25034 浏览

java - 编译 Java 时使用多个内核/处理器

我使用一个具有八个内核的桌面来构建一个使用 Ant 的 Java 应用程序(通过 javac 目标)。有没有办法通过使用多个线程或进程来加快编译速度?

我知道我可以并行运行多个 Ant 任务,但我认为这不能应用于单个编译目标,不是吗?

0 投票
6 回答
40315 浏览

visual-studio - 如何在 Visual Studio 2010 中进行并行构建?

如何让 VS 2010 一次运行多个 C++ 编译进程?我的意思是并行构建对象模块;我对一次构建多个项目不感兴趣(我知道工具 > 选项 > 构建和运行 < 并行项目构建的最大数量,但这不是我想要的)。

基本上,我正在寻找 Visual Studio 的“make -jN”等价物。

0 投票
3 回答
377 浏览

java - 构建 Java 代码的快速、易于维护和可并行化的方式?

我正在开发一个构建系统,该系统长期以来一直存在不良做法和其他不良做法,并且我正在重新编写构建。涉及的语言是 C/C++、Fortran、Ada 和 Java,目前我坚持使用 GNU 风格的 makefile——尽管我们正在考虑其他替代方案,例如 SCons。

话虽如此,我正在寻找一些具体的建议——而不是“使用不同的构建系统”等形式的建议。

无论谁编写了我现在正在查看的特定 makefile,他都计划按顺序构建如下所示的 java 代码:

如果您执行串行构建,则可以正常工作。但是,一旦依赖项混入其中,问题就会变得更加严重。

  1. C/C++ 编译器具有用于生成依赖项的内置选项……Java 是否存在类似的工具?
  2. 是否有必要使用第三方工具(如 Jikes)来生成依赖项?
  3. 通常来说,如果一个团队使用 makefiles 来构建任何与 java 相关的东西,是否更典型的是调用 java 编译器一次列出.java一个命令行中的所有文件 -vs- 每个.class文件的一个目标?
    • 如果这更常见,这是为了简单起见还是有更深层次的原因?
    • 注意:我知道对于顺序构建,这将是更快的选择,但我想要一个答案来对并行构建进行经验测试
0 投票
2 回答
2155 浏览

unit-testing - “序列化” Bamboo 构建?

我们使用 Bamboo v3.1.1 作为我们的持续集成构建服务器,它运行良好——大部分时间。

我们遇到的一个问题是我们正在进行大量面向数据库的测试,例如,构建在共享数据库实例上进行了一些单元和集成测试。

当我们碰巧同时运行同一个构建计划的多个 Bamboo 构建时,这会导致问题 - 它们相互绊脚并导致死锁,通常,所有涉及的构建都会因此而失败。

因此,虽然并行构建很棒——理论上——我们真的希望能够定义一个构建计划来“序列化”构建,例如从不并行执行多个构建。

有谁知道我们该怎么做?是否有一个设置告诉 Bamboo“不要并行化这个构建计划 - 一次只做一个构建,以串行方式”

更新:

我的构建过程目前有两个阶段:

  • 核心构建(构建 VS 解决方案,将测试数据库更新为最新脚本)
  • 测试(NUnit 2.4)

“核心构建”可以轻松地并行运行多次 - 没有问题。但是,“测试”阶段不能多次运行,因为其中一些测试访问唯一共享的“单元测试”数据库;如果超过 1 个“测试”阶段进程正在运行,它们最终会互相死锁。

那么我如何告诉 Bamboo 可以并行化“核心构建”阶段,但对于“测试”,无论运行多少构建,始终一次只运行一个实例?

0 投票
1 回答
410 浏览

maven-3 - 跳过 Maven 3 并行构建项目

有人知道为什么我的一些项目在成功的 Maven 构建结束时被标记为 SKIPPED 吗?

请注意,“跳过链”总是从我的网络项目开始,其中包括以下功能:

  • jspc-maven-插件
  • 带有覆盖的战争插件
  • maven 依赖插件
0 投票
1 回答
1368 浏览

maven-3 - Maven 3 Parallel Gmaven 零星故障

我的 Maven 3.0.4 并行构建因以下错误间歇性失败:

[错误] 无法执行目标 org.codehaus.gmaven:gmaven-plugin:1.2:compile (default) on project opcenter: No providers found matching selection: 1.7 -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException:未能在项目 opcenter 上执行目标 org.codehaus.gmaven:gmaven-plugin:1.2:compile(默认):没有找到匹配选择的提供者:org.apache.maven.lifecycle.internal.MojoExecutor.execute 的 1.7(MojoExecutor.java: 217)在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在 org.apache.maven .lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在 org.apache.maven.lifecycle.internal.LifecycleThreadedBuilder$1.call(LifecycleThreadedBuilder.java:167) 在 org.apache.maven.lifecycle.internal.LifecycleThreadedBuilder$1.call(LifecycleThreadedBuilder.java:163) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 在 java.util.concurrent。 FutureTask.run(FutureTask.java:138) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java .util.concurrent.FutureTask.run(FutureTask.java:138) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java :908) at java.lang.Thread.run(Thread.java:662) 原因:org.apache.maven.plugin.MojoExecutionException:没有找到匹配选择的提供者:org.codehaus.gmaven.plugin 中的 1.7。MojoSupport.execute(MojoSupport.java:85) 在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 13 更多原因:org.codehaus.gmaven.feature.ProviderException:未找到匹配选择的提供者:org.codehaus.gmaven.runtime.loader.DefaultProviderManager.select(DefaultProviderManager.java:109) 的 org.codehaus 的 1.7 .gmaven.plugin.ProviderMojoSupport.provider(ProviderMojoSupport.java:120) 在 org.codehaus.gmaven.plugin.ComponentMojoSupport.feature(ComponentMojoSupport.java:49) 在 org.codehaus.gmaven.plugin.ComponentMojoSupport.feature(ComponentMojoSupport.java :42) 在 org.codehaus.gmaven.plugin.ComponentMojoSupport.doExecute(ComponentMojoSupport.java:53) 在 org.codehaus.gmaven.plugin.MojoSupport.execute(MojoSupport.java:69) ... 还有 15 个

我的父 pom.xml 定义 gmaven 插件如下:

请注意,当我运行“mvn groovy:providers”命令时,我看到运行时已安装,当我使用单线程构建时,构建成功

0 投票
3 回答
31122 浏览

linux - 并行制作:将 -j8 设置为默认选项

-j我可以使用参数设置构建过程的线程数。例如,我有 4 个核心 +4 个虚拟。我写make -j8的时候:速度提高了4倍。

是否可以将该值设置为默认值?(例如,在 Linux Gentoo 中,在配置文件中,可以设置此默认值)。

ps 我有 Arch Linux

0 投票
6 回答
65223 浏览

cmake - 如何在 CMake 中配置可移植并行构建?

无论使用哪种构建工具,是否有可能以某种方式进行并行构建?

在 Unix 下,我们可以添加make -jN其中 N 是线程数,在 Windows 下,我添加到CXX_FLAG "/MP"其中,然后在 Visual Studio 中用于并行构建......(?)我怎样才能使我的版本CMAKE_MAKE_PROGRAM不总是在我扩展时运行 CMake?

什么是通用解决方案?

我想出了这个: