基于Github搭建Maven仓库的方法
参考网址:
将新SSH密钥添加到您的GitHub帐户
https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
基于Github搭建Maven仓库的方法
https://www.jianshu.com/p/3111bcf96cdf
将现在的GitHub公钥添加到网站上
https://help.github.com/articles/authorizing-an-ssh-key-for-use-with-a-saml-single-sign-on-organization/
生成新的SSH密钥并将其添加到ssh-agent
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#adding-your-ssh-key-to-the-ssh-agent
1. 将SSH密钥复制到剪贴板。
Shell命令行下,将公钥复制到剪贴板
$ pbcopy < ~/.ssh/id_rsa.pub
-
将SSH密钥复制到剪贴板。如果您的SSH密钥文件的名称与示例代码不同,请修改文件名以匹配当前设置。复制密钥时,请勿添加任何换行符或空格。
$ pbcopy < ~/.ssh/id_rsa.pub #将id_rsa.pub文件的内容复制到剪贴板
提示:如果
pbcopy
不起作用,您可以找到隐藏.ssh
文件夹,在您喜欢的文本编辑器中打开文件,然后将其复制到剪贴板。 -
在任意页面的右上角,单击您的个人资料照片,然后单击“设置”。
-
在用户设置侧栏中,单击SSH和GPG密钥。
-
单击“ 新建SSH密钥”或“ 添加SSH密钥”。
- 在“标题”字段中,为新密钥添加描述性标签。例如,如果您使用的是个人Mac,则可以将此键称为“Personal MacBook Air”。
- 将密钥粘贴到“密钥”字段中。
- 单击“ 添加SSH密钥”。
- 如果出现提示,请确认您的GitHub密码。
生成新的SSH密钥并将其添加到ssh-agent
在将新的SSH密钥添加到ssh-agent以管理密钥之前,您应该检查现有的SSH密钥并生成新的SSH密钥。将SSH密钥添加到代理时,请使用默认的macOS ssh-add
命令,而不是macports,homebrew或其他外部源安装的应用程序。
-
在shell后台启动ssh-agent。
$ eval "$(ssh-agent -s)" #ssh-agent pid 59566
-
如果您使用的是macOS Sierra 10.12.2或更高版本,则需要修改
~/.ssh/config
文件以自动将密钥加载到ssh-agent中并在密钥链中存储密码。Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_rsa
-
将SSH私钥添加到ssh-agent并将密码存储在密钥链中。如果使用其他名称创建密钥,或者要添加具有不同名称的现有密钥,请将命令中的id_rsa替换为私钥文件的名称。
$ ssh-add -K ~/.ssh/id_rsa
注意:该
-K
选项是Apple的标准版本ssh-add
,当您向ssh-agent添加ssh密钥时,它会将密码链存储在您的钥匙串中。如果您没有安装Apple的标准版本,则可能会收到错误消息。有关解决此错误的详细信息,请参阅“ 错误:ssh-add:非法选项 - K”。
添加密钥时的错误信息:git id_rsa are too open文件权限过大的解决方法
添加密钥时的密钥的文件的权限应为700.
1、文件属性,即文件的类型/读/写/执行等权限,共10个字符。
-
第一个字符表示类型,后9个字符分3组,表示该文件对于当前用户(user)、当前用户所在组(group)、其他用户(other)的读/写/执行权限。
-
rwx:代表属主权限,-代表无权限;r代表具有可读权限; w代表具有可写权限;x代表具有可执行权限
# 修改(~)个人目录下的 .ssh 文件夹中的密钥权限为700
$ chmod 700 ~/.ssh/id_rsa
使用ssh -T git@github.com检查密钥和公钥是否加载成功。
$ ssh -T git@github.com
Hi vcfriend! You've successfully authenticated, but GitHub does not provide shell access.
嗨,我的朋友!您已经成功地进行了身份验证,但GITHUB不提供shell访问。
查看远端地址 git remote –v
查看配置 git config --list
git remote –v # 查看远端地址
git config --list # 查看配置
git add . # 暂存所有的更改
git checkout . # 丢弃所有的更改
git status # 查看文件状态
git commit -m "本次要提交的概要信息" # 提交
重点需要检查的信息
user.name=“github用户名”
user.email=”用户邮箱“
remote.origin.url=https://github.com/“用户名”/maven
以下设置有误时会出现以下错误信息
fatal: Could not read from remote repository.的解决办法
密钥没有添加成功git命令时可能会出现的错误信息
Permission denied (publickey). fatal: Could not read from remote respository.解决办法
搭建过程
- 利用github网站中创建一个新的仓库,记下仓库地址:
git@github.com:${github_account}/maven.git - 进入 ${HOME}/.m2/repository/,初始化git本地仓库,添加员段地址。
$ cd ~/.m2/repository
$ git init
$ git remote add origin git@github.com:"用户名"/maven.git
# 初始化本地仓库,将本地仓库上传至远程仓库
- 创建.gitignore 将文件匹配符*加入其中, 并将.gitignore提交git本地仓库master分支
$ echo "*" >> .gitignore
$ git add .gitgnore
$ git commit -m 'add .gitignore by ignoring all'
- 分别创建分支snapshot与release并push至远端仓库,用于发布不同状态的artifects,默认情况切换至snapshot
$ git branch snapshot
$ git branch release
$ git push origin snapshot
$ git push origin release
$ git checkout snapshot
- 当开发完成发布新的artifects(例如com.github.${github_account}:${artifactId}:${version})时,首先利用mvn install 将artifects安装至本地maven仓库中 ~/.m2/repositor
$ cd ${project_root}
$ mvn install
然后,将需要发布对应版本的artifects所闻提交至本地git仓库中,然后push至对应的分支snapshot 或 release.
$ cd ~/.m2/repository
$ git add -f com/github/${github_account}/${artifactId}/${version}
$ git commit -m 'snapshot of com.github.${github_account}:${artifactId}:${version}'
$ git push origin snapshot
- 在pom.xml中使用maven artifact添加以下配置:
<project>
<!--Add repositories "添加自己的仓库地址"-->
<repositories>
<repository>
<id>haoch-maven-snapshot-repository</id>
<name>haoch-maven-snapshot-repository</name>
<url>https://raw.github.com/${github_account}/maven/snapshot/</url>
</repository>
<repository>
<id>haoch-maven-release-repository</id>
<name>haoch-maven-release-repository</name>
<url>https://raw.github.com/${github_account}/maven/release/</url>
</repository>
</repositories>
<!-- Add dependencies "添加项目依赖"-->
<dependencies>
<dependency>
<artifactId>${artifactId}</artifactId>
<groupId>com.github.${github_account}</groupId>
<version>${version}</version>
</dependency>
</dependencies>
</project>
总结
Github 目前为止也许是最好的代码托管服务和社交编程平台,拥有非常好的开源分享文化,在这里分享可复用的maven artifact自然也是最佳选择。
Git原生提供的强大版本控制能力,在日常开发中必不可少,加上Github免费的git repository的静态raw访问服务,Github作为maven remote repository可以和日常开发工作有效的融合。
作者:Devid
链接:https://www.jianshu.com/p/3111bcf96cdf
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。