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
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Java Maven和Gradle构建的主题缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 曝华为手机或长时间独占卫星通信 友商方案
- 下一篇: 韩国显示屏厂商或已从iPhone 15中