家用版本maven的创建方法

背景是在家里写代码,有时候想发布一个组件。

看起来有几个选项,要么是发布到github,要么是发布到jetpat。

但是我的组件又不太想对所有人开放。

部署一个maven center需要几个g的内存,我的云服务器只有1C1G,完全带不动这么高的配置。

所以这是本文的方法用nginx替代maven.

发布到简易版本maven

step 1, 发布到本地文件

java 复制代码
apply plugin: 'maven-publish'

def build_data = new Date().format('yyyyMMddHH')

afterEvaluate {

    publishing {
        publications {
            release(MavenPublication) {
                def releaseComponent = components.findByName("release")
                if (releaseComponent != null) {
                    from releaseComponent
                }
                groupId = "org.yeshen"
                artifactId = "tcpdump"
                version = "1.0.${build_data}"
            }
        }

        repositories {
            maven {
                url "file://" + projectDir + "../../../export"
            }
        }
    }

}
复制代码
apply from: rootProject.file('gradle/git-publish.gradle')

./gradlew :libtcpdump:publish

step 2 拷贝文件到nginx目录

sh 复制代码
scp -r ../export/* ${ssh_server_path}

step 3 使用

复制代码
maven {
    url = uri("https://${你的域名}$/${路径}")
}

鉴权

生成密码文件

复制代码
sudo apt update
sudo apt install apache2-utils
openssl rand -base64 16
# 获取随机密码

# 创建文件并添加用户 yeshen(交互式输入密码)
sudo htpasswd -c /etc/nginx/.htpasswd yeshen
# 填入上面生成的随机密码

nginx配置访问权限

配置

复制代码
location /maven {
    auth_basic "Maven Repository";
    auth_basic_user_file /etc/nginx/.htpasswd;
    autoindex on;
}

生效配置

sh 复制代码
sudo nginx -t
sudo systemctl restart nginx

使用

复制代码
maven {
    url = uri("https://${domain}/maven")
    credentials {
        username = 'yeshen' // 上面的用户名
        password = 'xxxxx' // 上面生成的随机密码
    }
}
相关推荐
代码什么用7 小时前
Spring基础使用
java·后端·spring
Su米苏7 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园8 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁8 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网8 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西8 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨8 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
小卡车5559 小时前
java反射、自定义注解的应用(自定义分页)
java
BLUcoding10 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
yuniko-n10 小时前
【JUC】Lock 和 synchronzied 锁
java