疑问解答
什么是构建缓存,缓存异常时怎么清理?
编译构建提供了构建缓存功能,构建时可将依赖缓存于用户私有存储空间,下次构建时直接使用,无需重复下载,可极大提高构建效率。
- 构建缓存配置
- 清理缓存
由于网络抖动、并发构建或其他极端情况,可能出现缓存内容异常导致构建异常,下面介绍异常缓存的清理过程。
执行缓存清理操作前,请务必仔细阅读以下缓存清理风险以及注意事项:
- 由于缓存目录为同租户共享,频繁清理缓存会概率性导致同租户用户构建异常(常表现为某文件不存在),故此操作只可在缓存异常时清理一次,正常后需要务必再次编辑任务,删除清理命令。
- 清理缓存时尽可能使用精确的文件路径,如:清理demo 1.0.0版本,请使用“rm -rf /path/com/xx/demo/1.0.0”,尽量避免删除目录层级过高,导致下次构建缓慢或因网络问题导致依赖异常。
- 出于安全考虑,缓存清理命令只可在“Maven构建”步骤执行,在其他步骤执行此命令会导致“目录不存在”或清理无效。
如您已认真阅读以上风险说明,确保理解且接受该风险,可按如下步骤清理缓存。- 准备清理命令。
- 缓存清理命令格式为:rm -rf /repository/local/maven/{Group ID}/{Artifact ID}/{Version}。
- 其中,需要的参数分别对应依赖坐标中的GroupID、ArtifactID、version。
若依赖如下:
<dependency> <groupId>com.xx.devcloud</groupId> <artifactId>demo</artifactId> <version>1.0.9-SNAPSHOT</version> </dependency>
那么,清理该依赖所需命令为:rm -rf /repository/local/maven/com/xx/devcloud/demo/1.0.9-SNAPSHOT。
- 编辑构建任务,配置“ Maven构建”步骤。
- 找到mvn xxxx命令位置,在此命令之前新增一行,填入准备好的清理命令,保存任务。
- 重新执行构建任务。
- 成功后再次编辑任务,移除清理缓存命令。
Maven构建默认命令含义是什么?
# 功能: 打包 # 参数说明: # -Dmaven.test.skip=true:跳过单元测试 # -U:每次构建检查依赖更新,可避免缓存中快照版本依赖不更新问题,但会牺牲部分性能 # -e -X :打印调试信息,定位疑难构建问题时建议使用此参数构建 # -B:以batch模式运行,可避免日志打印时出现ArrayIndexOutOfBoundsException异常 # 使用场景: 打包项目且不需要执行单元测试时使用 mvn package -Dmaven.test.skip=true -U -e -X -B
其中,各命令/参数含义为:
- mvn package:使用maven执行打包动作,此命令会在项目target目录下生成软件包,可根据需要自行调整目录。
- -Dmaven.test.skip=true:跳过单元测试,建议保留。
- -U:每次构建检查依赖更新,可避免缓存中快照版本依赖不更新问题,但会牺牲部分性能,建议保留。
- -e -X:打印调试信息,定位疑难构建问题时建议使用此参数构建。
- -B:以batch模式运行,可避免日志打印时出现ArrayIndexOutOfBoundsException异常