Go语言实现的Maven仓库,树莓派适用

2022-07-18  本文已影响0人  fanxcv

Maven-Go是一个由Go语言实现的简易Maven仓库,主要用于在低内存设备上部署,支持依赖上传下载,镜像外部仓库并提供缓存
项目地址:Maven-Go

该项目借鉴了maven-manager, maven-manager使用java开发, 我在树莓派上部署时, 发现内存实在捉急, 所以用Go重新实现了一遍

使用Docker部署

docker pull f763180872/maven-go:latest

docker run -d --name maven-go \
  -v $PWD/config.yaml:/root/config.yaml \
  -v $PWD/data:/data \
  --restart always \
  -p 8880:8880 \
  f763180872/maven-go

config.yaml为启动配置, 默认配置见配置文件说明
data为数据保存目录

自编译

本人使用的Go版本为: 1.18.3

git clone --depth 1 https://github.com/fanxcv/Maven-Go.git
cd Maven-Go
# 使用make编译二进制文件
make
# 本地编译docker镜像
make docker
# 手动编译命令
go mod tidy
go build -o MavenGo src/main.go
# 交叉编译
# CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o MavenGo src/main.go
chmod a+x MavenGo
./MavenGo -c config.yaml

启动参数

启动时, 可以使用-c指定配置文件路径, 默认加载同目录下的config.yaml

配置文件说明

listen: 0.0.0.0 # 监听地址
port: 8880 # 监听端口
logging:
  path: /data/log # 文件日志保存地址, 默认为空, 即不写入文件
  level: debug # 日志级别
context: maven # 基础路径
localRepository: /data/data # 本地仓库地址
user: # 认证用户配置, 支持多个
  - name: user
    password: password
repository: # 仓库设置
  - id: public # 仓库ID
    name: public repository # 名字, 随意
    mode: 4 # 模式, 0 无效 2 仅可写 4 仅可读 6 可读写
    cache: true # 是否缓存镜像文件, 默认不缓存
    target: private # 数据目录, localRepository的相对路径, 默认取id值
    mirror: # 镜像地址, 会先尝试在本地加载, 如果加载失败, 会尝试从镜像依次读取
      - https://maven.aliyun.com/nexus/content/repositories/public
      - https://repo1.maven.org/maven2
  - id: private
    name: private repository
    mode: 2
上一篇下一篇

猜你喜欢

热点阅读