一、背景
最近在做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地址为:
[email protected]: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 [email protected]: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> <artifactId>com.dsj361</artifactId> <groupId>common-utils</groupId> <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按钮即可
四、最后祝大家工作生活顺利
原文地址:https://www.cnblogs.com/nicekk/p/9061252.html