Java Maven和Gradle构建的主题缓存

Concourse CI 3.3.x引入了在任务运行之间缓存路径的功能。 此功能有助于加快将内容缓存在特定文件夹中的任务-在这里,我将演示如何使用此功能来加快基于Maven和Gradle的Java构建。

我在这篇文章中使用的代码和管道可以在我的github仓库中找到 – https://github.com/bijukunjummen/ci-concourse-caching-sample

如果要使用gradle包装器通过以下命令构建项目,那么让我从gradle构建开始:

./gradlew clean build

然后gradle默认会将依赖库下载到用户主文件夹中的“ .gradle”文件夹中。 可以使用“ GRADLE_USER_HOME”环境变量更改此文件夹的此位置,这是我将在合并任务中用于控制缓存路径的位置的变量。

构建我的项目的场所任务如下所示 :

---
platform: linux
image_resource:type: docker-imagesource:repository: openjdktag: 8-jdk
inputs:- name: repo
outputs:- name: out
run:path: /bin/bashargs:- repo/ci/tasks/build.shcaches:- path: .gradle/- path: .m2/params:PROJECT_TYPE:

请参阅上面的caches参数指定为“ .gradle”。 因此,我现在要做的就是确保Gradle使用此位置作为其主文件夹,这将在我的构建脚本中执行:

export ROOT_FOLDER=$( pwd )
export GRADLE_USER_HOME="${ROOT_FOLDER}/.gradle"

为Maven构建缓存Maven资源的过程是相同的,Maven将依赖的jar缓存在可以以多种方式指定的位置,我使用的一种方式是通过动态生成的设置来指定此位置。 xml文件的格式如下:

M2_HOME=${HOME}/.m2
mkdir -p ${M2_HOME}M2_LOCAL_REPO="${ROOT_FOLDER}/.m2"mkdir -p "${M2_LOCAL_REPO}/repository"cat > ${M2_HOME}/settings.xml <<EOF<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0https://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>${M2_LOCAL_REPO}/repository</localRepository>
</settings>EOF

这是大量的bash脚本,它所要做的就是生成一个settings.xml,其中将localRepository标记设置为“ .m2 / repository”文件夹,该文件夹相对于由concourse为构建生成的临时文件夹,因此可以缓存。

完成这些更改后,行为是下载在任务的第一次运行时发生,但随后被缓存以供后续运行。 在我的本地场所设置中,gradle首次构建大约需要2分钟,而后续的构建大约需要20秒!

您可以在我的演示项目中试用此功能– https://github.com/bijukunjummen/ci-concourse-caching-sample

翻译自: https://www.javacodegeeks.com/2017/08/concourse-caching-java-maven-gradle-builds.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java qlv转mp4 代码_怎么将qlv格式转换成mp4?教你快速转换视频格式的技巧

如何将qlv格式转换成mp4?众所周知qlv格式是腾讯视频的下载格式&#xff0c;而qlv格式的特点在于不能用别的播放器打开。如果用腾讯视频以外的播放器打开则需要将qlv格式转换成mp4&#xff0c;那你知道将qlv格式转换成mp4的技巧吗&#xff1f;下面小编教你一种转换qlv格式的技巧…

mysql导入竖杠分割的数据_MYSQL :逗号分隔串表,分解成竖表

DROP TEMPORARY TABLE IF EXISTS Temp_Num ;CREATE TEMPORARY TABLE Temp_Num ( xh INT PRIMARY KEY ); -- 创建数字辅助表SET i 0;INSERT INTO Temp_Num(xh) -- 写入数字辅助表SELECT i : i1FROM AdDataCenter.Ad_Targeting_Mobisage aLIMIT 0, 100 ;SELECT b.AdGroupID , SU…

maven 父maven_Maven的春天

maven 父maven1.概述 本教程将讨论如何使用Maven设置Spring&#xff0c;并介绍使用Spring依赖项的特定用例。 最新的Spring版本可以在Maven Central中找到。 2.基本的Maven Spring依赖关系 Spring的设计具有模块化和灵活性–基本的Spring容器可用于多种情况&#xff0c;而无需…

java中cell无法输出_java – iText 5.5.3 PDFPCell:长文本不适合单元格(不正确地包装文本)...

我正在尝试创建一个包含表格的波斯语PDF,我想写入它.当我的字符串很长时,它不能正确地适合单元格.感觉像字符串填充单元格颠倒&#xff01;…我的意思是,例如,当我想写“你好我的朋友.什么事情&#xff1f;”在单元格中输出如下&#xff1a;|这是怎么回事&#xff1f; ||我的朋…

emc存储java打开后报错_连接EMC存储系统 - osc_mk8rqvg4的个人空间 - OSCHINA - 中文开源技术交流社区...

1.准备一台笔记本电脑&#xff0c;一根网线即可。2.将网线一头连接笔记本电脑&#xff0c;另一头连接存储。(连接存储的一头应连接到有扳手图标的那一网口上)3.配置IP地址IP&#xff1a;128.221.1.254子网掩码&#xff1a;255.255.255.04.ping 128.221.1.250看是否能ping通&…

浙大JAVA实验题12_2019浙大计算机考研机试模拟赛(2)——概念专题

题目链接 引用自晴神OJA - 边覆盖B - 极大独立集C - 稳定婚姻问题D - 笛卡尔树没赶得上全程的比赛&#xff0c;就做了两道&#xff0c;后面两道以后有时间再补。两道都是概念题&#xff0c;比较基础~ 以下是题解A - 边覆盖Case Time Limit: 200 MS (Others) / 400 MS (Java) …

hadoop小型集群_小型Hadoop集群的Ganglia配置和一些故障排除

hadoop小型集群Ganglia是一个针对大型集群的开源&#xff0c;可扩展且分布式的监视系统。 它收集&#xff0c;汇总并提供数十种与计算机相关的指标&#xff08;例如CPU&#xff0c;内存&#xff0c;存储&#xff0c;网络使用情况&#xff09;的时序视图。 您可以在UC Berkeley …

java 异常堆栈日志分析_Java 进阶之路:深入解读 Java 异常堆栈丢失原因

在应用程序的开发和维护中&#xff0c;通常需要借助运行日志来监控和定位问题。其中&#xff0c;在日志中打印异常堆栈信息对于定位问题极为重要&#xff0c;因此&#xff0c;作为一名工程师&#xff0c;对打印异常堆栈应该不陌生。笔者在实践中曾遇到一个奇怪的现象: Java 应用…

使用Spock Mocks进行Grails 3.3集成测试

在Grails单元测试中&#xff0c;可以轻松使用Grails随附的Spock框架来模拟或存根协作者&#xff08;例如服务&#xff09;。 “ 测试”一章对模拟协作者&#xff0c; doWithSpring / doWithConfig回调方法&#xff0c;在测试中模拟bean的FreshRuntime批注进行了一些解释&#…

PHP ERROR_PHP 处理错误函数

错误级别Fatal Error:致命错误(脚本终止运行)E_ERROR //致命的运行错误&#xff0c;错误无法恢复&#xff0c;暂停执行脚本E_CORE_ERROR //PHP启动时初始化过程中的致命错误E_COMPILE_ERROR //编译时致命性错&#xff0c;就像由Zend脚本引擎生成了一个E_ERRORE_USER_ERROR //自…

php接收文件,如何通过php 发送与接收流文件

php 发送与接收流文件sendStreamFile.php 把文件以流的形式发送receiveStreamFile.php 接收流文件并保存到本地sendStreamFile.php<?php /** php 发送流文件* param String $url 接收的路径* param String $file 要发送的文件* return boolean*/function sendStreamFile($u…

elasticsearch和php,快速开始 | Elasticsearch-PHP | Elastic

快速开始edit这一节会概述一下客户端以及客户端的一些主要方法的使用规则。在 composer.json 文件中引入 elasticsearch-php&#xff1a;{"require": {"elasticsearch/elasticsearch": "~6.0"}}用 composer 安装客户端&#xff1a;curl -s http:…

spring aop组件_安全性中的Spring AOP –通过方面控制UI组件的创建

spring aop组件以下文章将显示在我参与的一个项目中&#xff0c;我们如何使用Spring的AOP来介绍一些与安全性相关的功能。 这样的概念是&#xff0c;为了使用户能够看到某些UI组件&#xff0c;他需要具有一定级别的安全特权。 如果不满足该要求&#xff0c;则不会显示UICompone…

使用Spring Boot构建RESTFul服务

每个人都在谈论微服务&#xff0c;例如WSO2微服务框架 &#xff0c; Spring Boot等。由于我已经很长时间没有从事任何与Spring相关的项目了&#xff0c;所以我想到了使用Spring Boot实现一个简单的RESTFul服务。 因此&#xff0c;我从Spring文档开始。 这很简单。 您可以使用“…

php分页操作,PHP实现适用于文件内容操作的分页类

本文实例为大家分享了PHP实现文件内容操作的分页类&#xff0c;强调一下只针对文件的操作&#xff0c;供大家参考&#xff0c;具体内容如下class StrPage {private $current; //当前页private $file; //操作文件private $totalPage; //总的页数private $url; //传递的参数priva…

php imagemagick 文档,调用ImageMagick的PHP函数中文文档

bool imagick_writeimage([source image handle],[new name & filetype]) 写图片 UN KNOW USE imagick_writeimages new_handle imagick_clonehandle([image handle]) 复制出新句柄 image_handle imagick_image2blob([blob handle]) 将数据流数据转换成为image数据 ima…

java.util接口_Java 8中java.util.function包中的谓词和使用者接口

java.util接口在上一篇文章中&#xff0c;我写了关于Function接口的内容 &#xff0c;它是java.util.package的一部分。 我还提到了Predicate接口&#xff0c;它是同一包的一部分&#xff0c;在这篇文章中&#xff0c;我将向您展示如何使用Predicate和Consumer接口。 让我们看一…

php datetime 对象,PHP DateTime 对象和 Date 函数的 Demo

DateTime对象//设置时间时区date_default_timezone_set("PRC");$dateFormat "Y-m-d";$dateTimeFormat "Y-m-d H:i:s";//获取当前时间$date new DateTime();echo $date->format($dateTimeFormat) . "\n";//时间2015-01-01加上7年…

将Swagger与Spring Boot REST API集成

在上一篇文章中&#xff0c;我谈到了我使用Spring Boot创建RESTFul Services的经验。 在创建REST API时&#xff0c;正确的文档是其中的必需部分。 昂首阔步是什么&#xff1f; Swagger &#xff08;Swagger 2&#xff09;是用于描述和记录REST API的规范。 它指定了REST Web…

php滴滴平台接口,图片服务API文档

简介滴滴云图片服务API提供标准的轻量级无状态HTTP接口&#xff0c;支持用户对数据的全方位管理。接口概览API描述图片信息获取文件的基本信息&#xff0c;包括长度、宽度、文件大小、格式。图片旋转将图片按顺时针旋转。图片模糊对图片进行模糊操作。图片缩放将图片缩小或者放…