自建的简易缓存仓库
| 码云仓库 | 个人Git仓库 |
支持 :maven、alpine、Docker
说明 :通过缓存形式提高仓库的拉取速度。如果本地不存在对应的缓存文件,则会从${res.config.*.remote-url}
指定的仓库获取资源文件进行本地缓存,下载的时候会同时传递给请求方。如果已存在,则直接从缓存文件获取。
服务不设置缓存过期事件,因为文件名称中存在版本信息,因此缓存文件不设置过期机制。
当前功能
- 实现
maven deploy
对应的功能
- 实现 maven 拉取依赖包的功能
- 实现 alpine 拉取依赖包的功能
关于 maven deploy 的设置
- 将
res.config.params.maven.is-deploy
设置为true
,开启deploy功能
- 需要在yaml中分别设置
res.config.params.maven.username
与 res.config.params.maven.password
.m2/settings.xml
中设置 <servers>
对应的用户密码信息。
- 在工程
pom.xml
中设置 <distributionManagement>
对应的仓库信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <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.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <mirrors> <mirror> <id>mirror</id> <mirrorOf>*</mirrorOf> <name>mirror</name> <url>http://192.168.9.31:8080/res/maven/agent/cache/</url> </mirror> </mirrors> <servers> <server> <id>my-LibraryCache</id> <username>Trevet</username> <password>123456</password> </server> </servers>
|
1 2 3 4 5 6 7
| <distributionManagement> <repository> <id>my-LibraryCache</id> <url>http://localhost:8080/res/maven/agent/upload</url> </repository> </distributionManagement>
|
编译
编译结果:target/library-cache-server-${version-info}.jar
运行
命令行运行
1 2 3 4 5 6 7 8 9 10 11
| # res.config.maven.remote-url 指定Maven阿里云仓库 # res.config.alpine.remote-url 指定Alpine阿里云仓库
# res.config.maven.cache-path 指定Maven缓存目录 # res.config.alpine.cache-path 指定Alpine缓存目录 java -jar \ -Dres.config.maven.remote-url=https://maven.aliyun.com/repository/releases \ -Dres.config.alpine.remote-url=https://mirrors.aliyun.com/alpine \ # http代理相关设置. -Dhttp.proxyHost=192.168.9.125 -Dhttp.proxyPort=7890 \ library-cache-server-0.0.2.jar
|
或者简单运行
1
| java -jar library-cache-server-0.0.2.jar
|
前置说明
运行环境
IP地址:192.168.2.115
端口:8080
Context-Path:/res
Maven配置文件设置方式
settings.xml 文件内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?xml version="1.0" encoding="UTF-8"?> <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.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <mirrors> <mirror> <id>mirror</id> <mirrorOf>*</mirrorOf> <name>mirror</name> <url>http://192.168.9.31:8080/res/maven/agent/cache/</url> </mirror> </mirrors> </settings>
|
Alpine配置设置方式
指定仓库且安装openjdk8
PS : 注意事项.1
cat /etc/alpine-release
执行结果为3.16.1
。
有些仓库统一使用大版本,例如:3.16.1
实际为3.16
。
因此cat /etc/alpine-release
组成的参数可能无效。
PS : 注意事项.2
如果需要将本工具放置到内网,需要将APKINDEX.tar.gz
索引包放入对应的缓存路径中.
默认情况下,本工具是可以访问外网的。
1 2 3
| echo http://192.168.9.31:8080/res/alpine/agent/cache/v`cat /etc/alpine-release`/main/ > /etc/apk/repositories echo http://192.168.9.31:8080/res/alpine/agent/cache/v`cat /etc/alpine-release`/community/ >> /etc/apk/repositories apk update && apk upgrade && apk add openjdk8
|