pbi*_*nie 5 java maven google-cloud-build
我正在使用Google Cloud Build构建一个具有数百个依赖项的 java 项目。默认情况下,本地 Maven 存储库缓存将为空,并且每次构建时都会下载所有依赖项。
谷歌文档只建议“使用谷歌云存储缓存目录” https://cloud.google.com/cloud-build/docs/speeding-up-builds但同步 7000 个文件需要很长时间(这意味着构建是慢点)
只有一个依赖项是 5 个文件
repository/org/mockito
repository/org/mockito/mockito-core
repository/org/mockito/mockito-core/2.15.0
repository/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.jar
repository/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.jar.sha1
repository/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.pom
repository/org/mockito/mockito-core/2.15.0/mockito-core-2.15.0.pom.sha1
repository/org/mockito/mockito-core/2.15.0/_remote.repositories
Run Code Online (Sandbox Code Playgroud)
示例 cloudbuild.yaml 文件
steps:
- name: gcr.io/cloud-builders/gsutil
args: ['rsync', '-r', 'gs://my-mavencache-bucket/repository', '.']
- name: 'gcr.io/$PROJECT_ID/mvn'
args: ['package']
...
Run Code Online (Sandbox Code Playgroud)
我想将 gs://my-mavencache-bucket 作为一个卷挂载 - 但我没有看到这样做的选项
经过多次实验,这个解决方案似乎效果很好。谷歌存储旅行车。这个 Maven 插件提供了一种从 google 数据桶读取和发布 Maven 工件的机制
Maven pom.xml 包含
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
...
<repositories>
<repository>
<id>my-repo-bucket-release</id>
<url>gs://bucket-ave-build-artifact/external</url>
<releases>
<enabled>true</enabled>
<!-- TODO figure out why checksums do not match when artifact pulled from GCP -->
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
</repositories>
<distributionManagement>
<snapshotRepository>
<id>my-repo-bucket-snapshot</id>
<url>gs://my-build-artifact-bucket/snapshot</url>
</snapshotRepository>
<repository>
<id>my-repo-bucket-release</id>
<url>gs://my-build-artifact-bucket/release</url>
</repository>
</distributionManagement>
...
<extensions>
<extension>
<groupId>com.gkatzioura.maven.cloud</groupId>
<artifactId>google-storage-wagon</artifactId>
<!-- version 1.8 seems to produce exception, ticket logged -->
<version>1.7</version>
</extension>
</extensions>
</build>
Run Code Online (Sandbox Code Playgroud)
cloudbuild.yaml 很简单
steps:
- name: 'gcr.io/cloud-builders/mvn'
# -X here simply for verbose maven debugging
args: ['deploy', '-X']
Run Code Online (Sandbox Code Playgroud)
这会:
| 归档时间: |
|
| 查看次数: |
2146 次 |
| 最近记录: |