一、背景

最近在做HBase的项目,不免会引用到一些工具类,如StringUtils,NumberUtils,DateUtils这些,公司底层有封装好可以直接使用。

但是项目完成,用maven打包部署的时候,由于公司底层集成了太多jar包,可能会导致冲突,使打完的jar包无法用java -jar 运行,报错是

Error: Invalid or corrupt jarfile realTimeImport-1.0-SNAPSHOT.jar

暂时定位是引用了太多jar包引起的,但其实我可能就只需要一些工具类。所以萌生了我能不能自己搭建一个maven仓库。

公司的maven库都是为app而引用的,都是com.bench.app,我搞一个com.dsj361显的很突兀。所以还是不用公司的了。

百度了一圈,发现可以用nexus搭建maven库,然后服务器放在公司虚拟机中,但是问题是,虚拟机可能随时会断点啊,清理啊什么的。

不是很稳定,放在云上,又不想花钱,那么放在github上可能就是一个最佳选择了。

二、操作

(1)首先github上新建一个账户,并且新建一个仓库

ssh地址为:
git@github.com:nicekk/maven.git
 
(2)git客户端配置
首先需要安装一个git客户端
https://gitforwindows.org/
从这里下载一个安装就好了。
生成密钥
打开git bash
 ssh-keygen -t rsa
一路下一步,即可安装到c:/user/xxxx/.ssh/下
去github上面,选择


 Settings进去,SSH and GPK keys
点击新增一个ssh-key
把刚刚生成的密钥的.pub文件内容复制到这里,并且写上对应的名字,区分
即可
 
 
 
(3)
在本地maven仓库的根目录下创建
cd 到/d/dev/maven-repository
git init
git remote add origin git@github.com:nicekk/maven.git
 
创建.gitignore 将文件匹配符*加入其中, 并将.gitignore提交git本地仓库master分支
 echo "*" >> .gitignore
 git add .gitignore -f
git commit -m 'add .gitignore'
 
(4)

分别创建分支snapshot与release并push至远端仓库,用于发布不同状态的artifects,默认情况切换至snapshot
git branch snapshot
git branch release
git push origin snapshot
git push origin release
git checkout snapshot
 
(5)开发共用的库
新建maven项目,开发...,开发完成后,使用mvn clean source:jar install安装至本地仓库
 
(6)使用git提交
cd 到 /d/dev/maven-repository(maven仓库根目录)
git add -f com/dsj361/common-utils/1.0-SNAPSHOT
git commit -m 'snapshot of com/dsj361/common-utils/1.0-SNAPSHOT'
git push origin snapshot
 
(7)此时私人的maven仓库就搭建完毕了,下面新建一个使用公共jar的项目测试
同样新建一个maven项目
加入reposity和dependency
<repositories>
<repository>
<id>github-maven-snapshot-repository</id>
<name>github-maven-snapshot-repository</name>
<url>https://raw.github.com/nicekk/maven/snapshot/</url>
</repository>
<repository>
<id>github-maven-release-repository</id>
<name>github-maven-release-repository</name>
<url>https://raw.github.com/nicekk/maven/release/</url>
</repository>
</repositories>

  

<dependency>
<groupId>com.dsj361</groupId>
<artifactId>common-utils</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

  

即可引入在github上的jar包了

(8)当公用项目有变更时,修改好,打包,提交,重复(6)即可

(9)如果你不喜欢用命令行的方式,觉得太费脑,那我下面写第三点,说一下tortoiseGit的使用

三、使用tortoiseGit提交git

1、下载

https://tortoisegit.org/download/

2、安装好这两个东西。

3.设置语言

4.设置密钥

TortoiseGit 使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥。使用命令ssh-keygen -C "邮箱地址" -t rsa产生的密钥在TortoiseGit中不能用。而基于git的开发必须要用到rsa密钥,因此需要用到TortoiseGit的putty key generator工具来生成既适用于git的rsa密钥也适用于TortoiseGit的ppk密钥
运行TortoiseGit开始菜单中的puttygen程序

点击“Generate”按钮,鼠标在上图的空白地方来回移动直到进度条完毕,就会自动生一个随机的key,如下图示

(如有需要,可以为密钥设置对应的访问密码,就是修改上图中“Key passphrase”和“Confirm passphrase”的值)

5.将上图中多行文本框的内容全选、复制,并粘贴到git账户的 SSH public key中,这就是适用于git的公钥。

6.点击上图中的“Save private key”按钮,将生成的key保存为适用于TortoiseGit的私钥(扩展名为.ppk)。
7.运行TortoiseGit开始菜单中的Pageant程序,程序启动后将自动停靠在任务栏中,点击“Add Key”按钮,将第4步保存的ppk私钥添加进来,关闭对话框即可
9.提交
去刚刚maven仓库根目录,右键,选择Git 提交,写好提交comment,点击提交并且push按钮即可
 

四、最后祝大家工作生活顺利

利用github搭建私人maven仓库的更多相关文章

  1. 利用github搭建个人maven仓库

    之前看到有开源项目用了github来做maven仓库,寻思自己也做一个.研究了下,记录下. 简单来说,共有三步: deploy到本地目录 把本地目录提交到gtihub上 配置github地址为仓库地址 ...

  2. 使用Nexus搭建企业maven仓库(二)

    先阅读<使用Nexus搭建企业maven仓库(一)> http://blog.csdn.net/ouyida3/article/details/40747545 1.官网眼下最新的版本号是 ...

  3. Android业务组件化之Gradle和Sonatype Nexus搭建私有maven仓库

    前言: 公司的业务组件化推进的已经差不多三四个月的时间了,各个业务组件之间的解耦工作已经基本完成,各个业务组件以module的形式存在项目中,然后项目依赖本地的module,多少有点不太利于项目的并行 ...

  4. 【教程向】——基于hexo+github搭建私人博客

    前言 1.github pages服务生成的全是静态文件,访问速度快: 2.免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台: 3.可以随意绑定自己的域名,不仔细看的话根本看 ...

  5. 【保姆级】利用Github搭建自己的个人博客,看完就会

    大家好,我是辰哥~ 作为一名喜欢技术的爱好者,平时喜欢把自己学习技术的心得或者一些踩坑.易错的过程记录下来,首选的是技术平台(博客),今天辰哥来教大家如何利用Github来搭建一个自己的个人博客平台. ...

  6. 利用gitHub搭建博客

    ##1.gitHub Page的的使用我觉得这边博文写的很清楚,方法.步骤.优缺点以及实例,所以就借用一下啦^_^ [搭建一个免费的,无限流量的Blog](http://www.ruanyifeng. ...

  7. 利用GitHub搭建Hexo博客并开启HTTPS

    Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. GitHub 是一个面向开源及私有软件项目的托管平台 ...

  8. 搭建局域网maven仓库

    第一步: 下载Nexus http://nexus.sonatype.org/downloads/下载最新版本 解压缩到任意目录,我的直接解压到了E盘---------->E:\nexus-2. ...

  9. 利用github搭建个人网站

    1.注册一个github  https://github.com/ 2.新建一个仓库  仓库名 用 Owner.github.io 的格式,然后点击创建 3.源码上传至github 安装github桌 ...

随机推荐

  1. c# 多进程写信息到前台控件

    private void DispMsg(string strMsg, bool clearlb = false) { if (this.lberror.InvokeRequired == false ...

  2. Consul的反熵

    熵 熵是衡量某个体系中事物混乱程度的一个指标,是从热力学第二定律借鉴过来的. 熵增原理 孤立系统的熵永不自动减少,熵在可逆过程中不变,在不可逆过程中增加.熵增加原理是热力学第二定律的又一种表述,它更为 ...

  3. Powered by .NET Core 进展:第5次发布尝试(Windows部署)

    (图注:Windows 自带的性能监控,红色表示 CPU 占用,绿色表示 QPS) 今天中午 12:30 左右,我们进行了 .NET Core 博客站点的第5次发布(页脚会显示"Powere ...

  4. java优雅注释原则和代码格式列举

    一.java的三种注释类型 单行注释:// ...... 块注释:/* ...... */ 文档注释:/** ...... */ 二.指导原则 注释不能美化糟糕的代码,碰到糟糕的代码就重新写吧. 用代 ...

  5. 004——Netty之高性能IO(Reactor)

    一.原始方式 方法一: # 使用while循环,不断监听端口是否有新的套接字链接 while(true){ socket = accept(); handle(socket) } # 做法局限:处理效 ...

  6. Spring-Boot:Profile简单示例

    //Resources目录下创建 application.properties spring.profiles.active=prod //Resources目录下创建 application-pro ...

  7. (springboot)自定义Starter

    要引入的jar项目,即自定义的Starter项目: pom:(这里不能引入springboot整合否则测试项目注入失败) <?xml version="1.0" encodi ...

  8. VMware Workstation 15 Pro 永久激活密钥

    VMware Workstation 15 Pro 永久激活密钥   一. 激活密钥 YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8 UG5J2-0ME12-M89WY-NPWXX-WQH ...

  9. 百度地图api之----根据用户ip定位城市

    LocalCity 这个类是利用用户IP地址去百度数据库里查询得到IP所在的城市,用法如下: var objCity = new BMap.LocalCity(); objCity.get(funct ...

  10. HDU 6134

    题意略. 思路: 我们先不考虑[(i , j) == 1],在此情况下,其实这个值是sum( [ (i , j) == 1,2,3,....,n ] ) 这些情况.我们要求的仅仅是其中的第一部分而已. ...