问题标签 [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.

0 投票
2 回答
4795 浏览

android - 禁用 kapt 的增量构建

由于 android gradle 插件默认启用了增量构建,注释处理中断,因为只有那些自上次增量构建以来已更改的类才会被注释处理器考虑在内。

所以对于java源码我们通常使用aptgradd插件来运行注解处理。apt但是,如果在同一个项目中使用 ,android 的 gradle 插件会自动禁用 gradle 的增量构建功能: https ://github.com/google/dagger/issues/298

现在我正在开发一个 kotlin 项目,我面临着与kapt. 因此,与 一样apt,解决方案是禁用增量构建。文档说:

但是,这对我不起作用。有人知道如何禁用增量构建吗?

0 投票
1 回答
201 浏览

maven - Maven 自定义插件可以使用来自核心 Maven 的增量构建支持,还是必须自己实现?

自定义 Maven 插件可以使用来自核心 Maven 的增量构建支持,还是最好自己完全实现,在输入上使用 SHA1 哈希等?

注意到例如 /target/maven-status/maven-compiler-plugin/compile/default-compile 与 createdFiles.lst 和 inputFiles.lst,因此认为现有的自定义代码生成器 Maven 插件,它读取一些文件作为输入,生成一些输出,是否可以更改为正确使用 Maven 插件 API 进行增量构建?不清楚该插件代码具体需要做哪些不同于现在的操作才能使其变得增量。似乎没有关于此的任何文档?

现有代码确实使用了例如 org.sonatype.plexus.build.incremental.BuildContext.hasDelta(File),但是在 org.sonatype.plexus.build.incremental.DefaultBuildContext.hasDelta(File) 中使用“return true”,这并不奇怪不太好用... ;-) 这不是在 Maven 中实现的,还是可以进行不同的配置?这需要 takari-lifecycle-plugin 吗?(对于我要求的特定插件,这将是一个问题,因为使用 takari-jar 而不是普通的 JAR 会干扰其他插件。)

了解自定义 Maven 插件可能必须与 Maven 核心 API 交互,以公开其输入文件之间依赖关系的概念。对于这个特定的自定义 Maven 插件,一些输入是从项目类路径的依赖项中读取的。增量支持也能处理这个问题吗?

了解现有的 Maven 插件,例如 maven-compiler-plugin,正在努力应对增量构建(à la Gradle);请参阅 [1]、[2] 和 [3],因此此 Q 专门用于了解如何扩展自定义 Maven 插件以支持增量构建。

[1] http://takari.io/2014/10/16/incremental-compilation.html

[2] http://takari.io/book/40-lifecycle.html

[3] Maven 是否支持增量构建?

0 投票
1 回答
1019 浏览

git - Visual Studio:如何使用 MSBuild 和 Git 进行增量构建

我创建了一个目标并指定了本教程中描述的输入和输出,以从 SASS 文件构建 CSS 文件。这通常有效,除非我切换到具有旧文件时间戳的旧 Git 分支。在这种情况下,我希望 MSBuild 执行我的目标以重建我的文件,但 MSBuild 跳过它,因为我的输入上的时间戳比我的输出旧,所以 MSBuild 认为我的输出是最新的。

当我切换 Git 分支时,如何让 Visual Studio 增量构建我的 SASS 文件并清理/忽略我的输出?我想避免手动清理我编译的 CSS 文件来强制构建。

0 投票
1 回答
1067 浏览

msbuild - MSBuild 目标 - 如何检测对 .csproj 内容文件的更改

我想要完成的是在构建期间检测项目的更改,以便我可以设置一个标志来指示项目已更改。我已经弄清楚了如何通过使用增量构建和 CoreCompileDependsOn 来检测 C# 组件何时发生变化。但这似乎不会在项目的内容文件发生更改时触发。据我了解,根据项目中内容文件的设置,将在某处指定 SkipUnchangedFiles="true" 的复制任务,复制到输出目录(不要复制,始终复制,如果较新则复制)。我不完全确定这个过程发生在哪里,可能是 Microsoft.CSharp。目标文件?有人可以建议我如何添加一个仅在将更新的文件复制到 bin 输出时才执行的依赖任务?一个非常简单的例子就足够了。

0 投票
1 回答
191 浏览

ocaml - 有没有像 OCaml 的增量构建这样的东西?

有没有什么工具可以用来获得像 Eclipse/IntelliJ/Visual Studio 那样的增量构建?

0 投票
1 回答
107 浏览

typescript - 没有更改时如何阻止 Visual Studio/msbuild 重新编译 TypeScript

我有 ac#MVC 项目,其中包含相当数量的 TypeScript 源代码,编译大约需要 5 秒。每当我们构建项目时,TypeScript 都会重新编译,即使没有任何变化(例如,引用的程序集发生了变化,所以 c# 需要重新编译,但这不应该强制 TypeScript 重新编译)。

有没有办法让它在没有任何变化的情况下跳过 TypeScript 编译?

0 投票
1 回答
415 浏览

java - Gradle Incremental Build不在目标路径中生成文件夹结构

Gradle Incremental Build 任务检测项目中更改的文件,并仅编译并将这些文件放入目标目录。

问题是当它将这些更改文件放入目标目录但它没有打包时。

例如:假设我有包'org/example/test.java'当我使用gradle运行任务并且它检测到test.java文件更改然后它被编译并放入目标目录,如:'target/project/WEB-INF/classes /test.class' 不做任何包。但我需要'target/project/WEB-INF/classes/org/example/test.class'

任何帮助表示赞赏。我将我的 gradle 任务代码放在下面:

0 投票
1 回答
385 浏览

build-automation - 使用多个构建代理进行增量构建和发布

我正在 Visual Studio Team Services 中为我的解决方案设置自动构建和发布定义。

我们使用托管代理池,池中有多个代理。因为解决方案会变得非常大,所以我想让我的构建和发布过程递增,这样我就不必在每次构建和发布时都部署所有组件。

使用多个代理时如何设置增量构建和发布?我了解设置增量构建的步骤之一是禁用构建文件夹的自动清理,但是这将如何与多个代理一起使用?

例如,如果构建 #1 发生在代理 #1 上,而构建 #2 发生在代理 #2 上,它将如何检测从代理 #1 上的构建 #1 更改/添加的文件?

我首先寻求帮助以从概念上理解这个问题,然后我想弄清楚如何在 Visual Studio Team Services 中应用该解决方案。

0 投票
1 回答
270 浏览

android-studio - 我的任务的 Gradle 增量构建:怎么了?

我正在为 Android Studio 2.3 中的 Gradle 3.3 苦苦挣扎。我有资产生成任务,我在 cfg 部分指定了 inputs.dir 和 outputs.dir:

我希望 Gradle 会检查输入文件夹更改的内容,如果添加、删除或更改了某些文件,它将允许执行任务,否则它将打印“UP-TO-DATE”。但只有当只有 delete(...) 和 mkdir(...) 时才会如此。否则每次都会执行。也许我以错误的方式理解“增量构建”这个术语?或者可能有任务大小限制,或者增量构建中禁止使用 javaexec 或复制?

PS。我尝试使用 make 命令直接从 AS Gradle 项目窗格启动任务。

0 投票
0 回答
1705 浏览

docker - 增量`docker图像保存| xz -zc -> images.tar.xz`