首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gitlab配置项缓存特定文件类型

Gitlab配置项缓存特定文件类型
EN

Stack Overflow用户
提问于 2016-06-23 12:34:29
回答 1查看 1.1K关注 0票数 2

我正在尝试在gitlab runner中使用缓存,它构建了一个Maven Java项目。目前,Gitlab runner只允许在cache:子句中缓存gitlab yaml文件中定义的特定路径。当maven构建项目时,它会生成target/文件夹中的所有内容,这些文件在git中是未跟踪的文件。因此,我可以简单地使用untracked: true选项来缓存target/文件夹下的所有内容。缓存的目的是跳过编译文件,这些文件已经由target/文件夹下的maven编译。

然而,这个缓存大约为6 6GB,对于它的大小和创建和恢复如此巨大的缓存所需的时间来说,这是完全不合理的。它缓存在编译多模块maven项目期间构建的所有jar和war工件。但是,maven只需要.class文件来检查更改以进行重新编译

因此,如果通过某种方式,我只能缓存*.class文件,并使它们在后续构建中可用,那么maven可以检查.class文件,并跳过重新编译未更改的文件,并且缓存大小也会非常小。目前,gitlab-runner只允许指定缓存的绝对路径。它不支持\.class$等路径的正则表达式模式(这将非常有用)。

有没有办法使用gitlab runner yaml设置只缓存特定的文件类型?

EN

回答 1

Stack Overflow用户

发布于 2016-06-24 12:41:45

因此,基于cascaval's comment,我能够找到一个解决方案。

在maven构建结束时,我运行了一个命令来清理maven创建的所有构建工件,这些工件不用于检查.java资源的陈旧状态。这是我写的-

代码语言:javascript
复制
cd ./projects/directory
find . | grep --perl-regexp --regexp='\/target\/(?!classes|maven)' | xargs rm --recursive --force

这会将所有.class文件保存在目标/类文件夹中,包括文件夹结构和maven-status文件夹中的文件,maven可能会使用这些文件来检查文件状态以进行重新编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37982415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档