美文网首页
Go语言实现的Maven仓库,树莓派适用

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

作者: fanxcv | 来源:发表于2022-07-18 11:38 被阅读0次

    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
    

    相关文章

      网友评论

          本文标题:Go语言实现的Maven仓库,树莓派适用

          本文链接:https://www.haomeiwen.com/subject/xiorirtx.html