问题标签 [incremental-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.
c# - 即使没有对目标输入进行任何更改,MSBuild 也不会跳过目标
我使用 MSBuild 14.0 版。
按照此处的文档,我定义了自己的Build
任务,如下所示:
这个想法是通过仅增量构建来减少构建时间 - 构建任务应该仅在@(Compile)
列表中的任何文件(当前是.cs
项目中所有文件的集合)在创建最新文件后被编辑时运行的版本MyLibrary.dll
。
使用 MSBuild,我运行了以下命令:
msbuild MyProject.csproj /t:Build /p:Platform="AnyCPU" /fileLogger /flp:logfile=Output.log;verbosity:minimal
我第一次执行命令时,一切都是从头开始构建的,正如预期的那样。
但是,在随后的情况下,当我再次运行命令而没有对我的任何文件进行任何更改时.cs
,项目也是每次都从头开始构建的。
为什么 MSBuild 不只是跳过Build
目标,即使Inputs
参数中包含的任何文件都没有更改 to Target
?
java - 如何使用注释处理器配置 Gradle 的增量构建
我想在构建过程中使用 QueryDSL 注释处理器。每次更改任何类时,如何摆脱不必要的注释处理器编译和运行?我希望 QueryDSL 仅在更改某些相关类时才生成 Q-* 类。
这个始终运行的注释处理器对我们的构建过程时间有负面影响,如果必须运行注释处理器,增量构建似乎不起作用。
谢谢你。
makefile - 当它依赖于已删除的文件时使 make 重建目标
假设我有这样的make
规则:
./text/foo.txt
然后删除其中一个文本文件 , 。目标$(INDEX)
似乎没有重建。在这种情况下如何进行make
重建?
hadoop - 尝试执行增量导入sqoop作业,但出现如下错误
尝试使用 sqoop 执行增量导入作业,但出现如下所示的错误。我也放了我用来做同样事情的代码。这些表在 rdbms 中,我正在尝试将其增量导入 hdfs。作业创建成功,只是它在执行时抛出错误。管理服务器工作正常。我检查了登录凭据,重新启动了管理服务器并运行了 sqoop 作业,但错误仍然存在。我在伪分发模式localhost上设置了hadoop。
jenkins - 如何让 Jenkins 多分支管道继续为同一个分支重用相同的构建节点?
无论如何,通过在构建分支时首选最后一个构建节点而不是或多或少随机选择可用节点来使 Jenkins 多分支管道更好地支持增量构建?
细节:
我们正在为一个大型 Git 项目设置 Jenkins 多分支管道,我们使用 Make 来构建和测试大量代码。一个完整的构建需要 6-8 个小时,但是 Make 中的依赖跟踪足以让我们使用增量构建,从而大大缩短了我们的构建时间。为此,Jenkins 必须再次选择相同的工作区来更改相同的分支。幸运的是它这样做了——但只在同一个构建节点上。
我们有一些相同的 Jenkins 从节点可用。每次由于 Git 中的分支发生更改而启动构建作业时,Jenkins 显然会选择一个随机的免费构建节点,该节点具有全新、干净的工作区,这意味着没有增量构建加速。
我们尝试通过 NFS 构建,这样所有构建节点都可以共享工作空间,但至少我们可用的 NFS 服务器太慢了,无法完成这项工作。
有没有办法让詹金斯随机选择节点,而更喜欢上次构建分支的最新节点?
visual-studio - 如何避免 Visual Studio 增量构建在外部文件时不运行和改变了吗?
我有一个 VS2017 csharp 项目,.csproj 文件如下所示:
MyCompileTarget
生成file.out
from的目标在哪里file.dat
(在实际代码中,增量构建目标和属性位于通过 NuGet 包自动包含的目标文件中)。
问题是,如果我更改file.dat
并按下Build,则根本不会执行任何目标(但使用Rebuild或使用 msbuild 运行时正确执行)。我希望执行该文件以便更新文件。MyTarget
MyCompileTarget
file.out
BeforeBuild
如果我使用orAfterBuild
代替PrepareResourcesDependsOn
etc ,也会出现同样的问题。
似乎除非更改了某些文件,否则 Visual Studio 增量构建将不会@(Compile)
启动@(EmbeddedResource)
。确实,如果我添加以下内容
增量构建按预期工作(但显然我不想将其file.dat
嵌入到生成的程序集中)。
是否可以强制 Visual Studio 启用增量构建,如果file.dat
已修改,并且相应生成的文件早于file.dat
或不存在?
注意:使用 .NET CORE 或 .NET FRAMEWORK 的 VS2015 也会出现同样的问题。此外,如果我更改 csharp 文件,将触发增量构建,因此它会触发MyTask
,但前提file.dat
是它比生成的文件更新(如预期的那样)。
在此先感谢,法比奥。
gradle - 未为任务启用 Gradle 构建缓存
我为我的项目启用了 gradle 构建缓存。但是,我们正在使用一些非内置任务,例如来自第三方插件的 npm-install。Gradle 没有为这些任务启用缓存。例如,当执行此类任务时,它会显示如下内容:
有没有办法为此类非内置任务启用构建缓存?
typescript - 如何在大型项目上组织 TypeScript 编译以进行开发
VSCode 尚不支持compile-on-save ,因为某些 API 未在ts-server上实现。
我们想要那个特性——在变化时快速编译单个文件(快速不到半秒)。我们试过tsc --watch
了,它从.ts
文件更改到增量编译运行了 7 秒以上。
如何在大型项目中使用 TypeScript?
ps 我们不使用 webpack。
amazon-redshift - Redshift - 对表进行增量更新时如何更新老化列
我有一个每天增量更新一次的表。表有大约 1000 万条记录,但我只更新在过去 24 小时内创建或更新的行。这运行得非常好,但是我有一个计算每个销售(记录)老化的列的问题,该老化是根据创建记录的时间计算的,并将其与最新的数据运行时间进行比较。我想知道每次表增量更新时,我如何才能为 1000 万行中的每一行更新此列。
我使用 Amazon Redshift 作为数据库。
谢谢..
c# - 创建增量构建时出现 CS0246 错误
我制作了一个小型 C# 应用程序,其中包含 1 个解决方案和 2 个项目 ( test1
, test2
)。第一个项目有两个文件Program.cs
,function1.cs
而第二个项目只包含Program2.cs
. 项目test1
创建.exe
文件,并test2
创建.dll
文件。问题是当我尝试在 VS 创建 .csproj 时构建它时它运行良好,但是当我尝试编辑该 .csproj (或编写我自己的)以实现增量构建时(就像在 MS 网站上的示例一样)它会抛出一个CS0246
找不到类型或命名空间名称“类型/命名空间”(您是否缺少 using 指令或程序集引用?)
尽管如此,我首先将引用添加到test2.csproj
,然后添加到.dll
它创建的引用,并且还使用了该using
指令。
当我尝试在命令提示符下运行时会出现同样的错误,
csc.exe program.cs function1.cs
但可以通过添加/:r
with来快速修复.dll
,例如:
\csc.exe program.cs function1.cs /r:test2.dll
然后它运行良好。我只是不知道如何确认文件之间引用的 msbuild。而且我还被迫使用 cmd 而不是在 VS 中构建它。
下面我放了我在项目中使用的代码。
这是我在末尾添加的片段,test1.csproj
以强制它进入增量构建:
这是代码Program.cs
:
这是function1.cs
:
这是代码Program2.cs
: