更新时间:2023-07-20 GMT+08:00
分享

疑问解答

什么是构建缓存,缓存异常时怎么清理?

编译构建提供了构建缓存功能,构建时可将依赖缓存于用户私有存储空间,下次构建时直接使用,无需重复下载,可极大提高构建效率。

  • 构建缓存配置

    新建编译构建任务时,默认选择使用缓存加速构建,用户可在“Maven构建”中展开“缓存配置”选择是否使用缓存。

  • 清理缓存

    由于网络抖动、并发构建或其他极端情况,可能出现缓存内容异常导致构建异常,下面介绍异常缓存的清理过程。

    执行缓存清理操作前,请务必仔细阅读以下缓存清理风险以及注意事项:

    • 由于缓存目录为同租户共享,频繁清理缓存会概率性导致同租户用户构建异常(常表现为某文件不存在),故此操作只可在缓存异常时清理一次,正常后需要务必再次编辑任务,删除清理命令。
    • 清理缓存时尽可能使用精确的文件路径,如:清理demo 1.0.0版本,请使用“rm -rf /path/com/xx/demo/1.0.0”,尽量避免删除目录层级过高,导致下次构建缓慢或因网络问题导致依赖异常。
    • 出于安全考虑,缓存清理命令只可在“Maven构建”步骤执行,在其他步骤执行此命令会导致“目录不存在”或清理无效。
    如您已认真阅读以上风险说明,确保理解且接受该风险,可按如下步骤清理缓存。
    1. 准备清理命令。
      • 缓存清理命令格式为: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。

    2. 编辑构建任务,配置“ Maven构建”步骤。
    3. 找到mvn xxxx命令位置,在此命令之前新增一行,填入准备好的清理命令,保存任务。
    4. 重新执行构建任务。
    5. 成功后再次编辑任务,移除清理缓存命令

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异常
分享:

    相关文档

    相关产品