文章目录

  • 简介
  • 前期准备
  • 在maven中配置GitHub权限
  • 配置deploy-plugin
  • 配置site-maven-plugin
  • 怎么使用这个共享的项目
  • 总结

简介

Maven是我们在开发java程序中经常使用的构建工具,在团队合作开发过程中,如果我们想要将自己写好的jar包共享给别人使用,通常需要自己搭建maven仓库,然后将写好的jar包上传到maven仓库中,以供其他用户使用。

搭建maven仓库需要服务器和域名,对公司而言域名和服务器多的是,但是如果是我们个人或者小团队想共享一些非常有用的jar包给别人使用就太麻烦了。

最近Github好消息频出,先是对个人用户取消了repositories和协作用户的个数限制,后面对于企业用户也进行了升级和降价处理。如果仓库不大的话,完全可以把仓库搬到github上面去。

更多精彩内容且看:

  • 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
  • Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
  • Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
  • java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程

更多内容请访问www.flydean.com

前期准备

要在github上面搭建maven仓库,我们需要使用到maven的插件:site-maven-plugin。因为要连到github上面,所以需要设置github的oauth权限。直接用用户名密码也可以,但是这样做不安全,我们并不推荐。

如上图所示,在Settings->Developer settings->Personal access tokens中创建一个access tokens,所需权限如下:

注意,用户这里的权限一定要选,否则后面会报异常。

有了权限,接下来我们再创建一个github-maven-repository,用来作为mvn仓库存储数据。

假如生成的地址是:https://github.com/flydean/github-maven-repository

在maven中配置GitHub权限

这一步我们需要编辑setting.xml文件,一般来说这个文件是在~/.m2/settings.xml。

我们需要添加一个Server,如果直接使用github的用户名密码,则像下面这样:

<server><id>github</id><username>YOUR_USERNAME</username><password>YOUR_PASSWORD</password>
</server>

前面我们讲到了直接使用用户名是不安全的,我们可以使用上面创建的oauth key:

<server><id>github</id><password>OAUTH2TOKEN</password>
</server>

这个id会在后面的pom.xml文件配置中用到,这里我们先记下来。

配置deploy-plugin

我们的目标是生成包含jar包的maven依赖。在将jar包上传到远程仓库之前,我们需要在本地先生成。

先配置一个本地的repository:

<distributionManagement><repository><id>maven.repo</id><name>Local Staging Repository</name><url>file://${project.build.directory}/mvn-repo</url></repository></distributionManagement>

上面我们指定了在项目的build目录下面创建了mvn-repo用来存储本地打好的package。

接下来,我们需要使用maven-deploy-plugin指定将打好的包部署到刚刚我们指定的local仓库中。

<plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version><configuration><altDeploymentRepository>maven.repo::default::file://${project.build.directory}/mvn-repo</altDeploymentRepository></configuration></plugin>

配置site-maven-plugin

现在我们就可以使用site-maven-plugin了:

<plugin><!-- Deploy the web site --><groupId>com.github.github</groupId><artifactId>site-maven-plugin</artifactId><version>0.12</version><executions><execution><goals><goal>site</goal></goals><!-- select the Maven phase in which the plugin will be executed --><phase>deploy</phase><configuration><!-- Plugin configuration goes here --><server>github</server><!-- The commit message --><message>init git maven repository</message><!-- The location where the site is uploaded --><repositoryName>github-maven-repository</repositoryName> <!-- github repo name --><repositoryOwner>flydean</repositoryOwner> <!-- organization or user name  --><!-- Use merge or override the content --><merge>true</merge><outputDirectory>${project.build.directory}/mvn-repo</outputDirectory><branch>refs/heads/mvn-repo</branch>
<!--                        <includes>-->
<!--                            <include>**/*</include>-->
<!--                        </includes>--></configuration></execution></executions></plugin>

使用中要注意下面几点:

  1. site-maven-plugin的goals是site,它需要跟maven的deploy phase相关联,从而在我们执行mvn deploy的时候自动运行site-maven-plugin。

  2. github的权限配置,我们可以在configuration中设置server=github,也可以配置下面的全局变量:

    <properties><github.global.server>github</github.global.server></properties>
  1. 需要指定repositoryName和repositoryOwner,否则会报错。

  2. message表示的是提交到github的消息。

  3. 默认情况下的提交到github中的branch是refs/heads/gh-pages,这里我们自定义了一个。

好了,一切都配置完了,我们可以运行了mvn deploy:

从上图可以看到,github上面已经有了一个可共享的项目了。

怎么使用这个共享的项目

使用起来很简单,只需要在pom.xml文件中添加相应的依赖和repository即可:

<dependency><groupId>YOUR.PROJECT.GROUPID</groupId><artifactId>ARTIFACT-ID</artifactId><version>VERSION</version>
</dependency><repository><id>ARTIFACT-ID</id><url>https://raw.github.com/flydean/github-maven-repository/mvn-repo/</url>
</repository>

总结

Github带给我们的福利,赶紧用起来吧。

本文的例子https://github.com/ddean2009/
learn-java-base-9-to-20

本文作者:flydean程序那些事

本文链接:http://www.flydean.com/apache-maven-git-repository/

本文来源:flydean的博客

欢迎关注我的公众号:程序那些事,更多精彩等着您!

使用site-maven-plugin在github上搭建公有仓库相关推荐

  1. 在Github上搭建Jekyll博客和创建主题

    在Github上搭建Jekyll博客和创建主题 之前本来想展开写的,后来发现Jekyll官网的教程已经非常完善了就没有多写,所以只有这篇. 但是过了这么久,发现很多人还是不清楚怎么搭建,所以这里打算详 ...

  2. jekyll php,使用Jekyll在Github上搭建个人博客(文章分类索引)

    系列文章传送门: 今天又滚出去野了一天,打牌输了,好在输的不多,聊天聊到了以后的路子,不太好走啊... 使用Category分类 一般来说,一个个人博客的文章会分为很多种,比如说有记录生活情感的.技术 ...

  3. 在GitHub上搭建个人主页

    最近因为项目组统一要求,在GitHub上搭建了一个个人主页,也就是个人简历页面.过程中遇到了一些问题,特记录下来与大家分享. 首先大家需要在GitHub上注册一个账号,注册账号过程就不在此赘述了,注册 ...

  4. 在Github上搭建自己的博客(Windows平台)

    折腾了好久,终于在Github上搭建了自己的博客.这里面总结一下过程希望对大家能有所帮助. Github建博优缺点 和 csdn,新浪,网易相比,在Github上可以自己实现功能 和阿里云,VPS相比 ...

  5. 手把手教你如何在GitHub上搭建属于自己的免费网站

    本文主要讲如何在GitHub上搭建属于自己的个人免费网站,如何得到属于自己的域名,免费的服务器,域名怎么和服务器捆绑,打造属于自己的炫酷的网站,可以在上面展示自己的作品,微信,QQ,邮箱,Twitte ...

  6. 在github上搭建自己的主页并免备案绑定自己域名

    我们如果想要一个属于自己的网站,都需要买域名和服务器,然而,这些都需要人民币.下面我来和大家分享一个小技巧,来免费创建自己的网站. 在github上搭建起来自己的主页下面我们一起来看一下如何搭建. 在 ...

  7. 在github上搭建属于自己的博客(windows操作系统演示)

    文章目录 在github上搭建属于自己的个人博客 概述 搭建博客步骤 结语 在github上搭建属于自己的个人博客 概述 ​ 该教程学习自B站up主codesheep<手把手教你从0开始搭建自己 ...

  8. 在GitHub上搭建typora的图床

    在GitHub上搭建typora的图床 PicGo和github搭建免费图床 **用到的工具:**PicGo PicGo是一款简易的图床上传工具,可以通过拖拽或者复制粘贴的方式将图片上传到图床. 下载 ...

  9. 将本地已经存在的代码跟github上新建的仓库建立关联,解决“fatal: 'origin' does not appear to be a git repository...”

    我想将本地已经存在的代码跟github上新建的仓库建立关联,步骤如下: 进入本地目录,初始化本地仓库 1.进入本地目录,初始化本地仓库:git init 2.将文件添加到仓库:git add . 3. ...

最新文章

  1. 关于举办第十届浙江省大学生智能汽车 竞赛暨第十六届全国大学生智能汽车竞赛 浙江赛区选拔赛的通知
  2. Android开发之Fragment与Activity的数据交互通过回调机制实现(源代码分享)
  3. pytorch for循环性能对比
  4. 【数据竞赛】厦门国际银行 “数创金融杯”数据建模大赛-冠军分享
  5. 数据库分库分表的几种方式
  6. How is account image maintained in CRM rendered in Fiori
  7. 802.11 n wlan linux驱动下载,802.11n无线网卡驱动
  8. python自动化开发和全栈开发_python全栈开发devops运维自动化方向初到高级在线课程分享...
  9. Vmware Ubuntu 开机蓝屏
  10. 记录几个Maven库地址
  11. truncate表和update 效率_SQL中Truncate的用法
  12. 插件制作教程 php,HYBBS插件开发教程 (简单插件) 初识篇
  13. WhatsApp + 聊天机器人= 转化率UP
  14. Kotlin中问号 ? 和两个叹号 !! 的含义
  15. 我的世界 Java1.12.2联机下载_我的世界1.12.2
  16. 网站被微信浏览器拦截怎么办 微信屏蔽网址打开如何解决
  17. stm32f407的串口调试助手乱码
  18. 线性代数学习笔记——第十二讲——求解矩阵方程
  19. mac 设置mysql登录快捷键_史上最详细的苹果Macbook快捷键使用
  20. tolua, luaframework环境搭建

热门文章

  1. 安卓进阶系列-06数据库框架(LitePal)的使用
  2. linux排序语言,Go语言排序sort的使用
  3. matlab求被21整除,用matlab求[100,999]之间能被21整除的数的个数,还有建立一个字符串向量,删除大写字母._...
  4. mysql查询补丁更新_OS:服务器系统补丁及数据库补丁更新说明
  5. Logistic回归与牛顿迭代法
  6. 13.IDA-显示正确的函数名称(去掉c++后缀命名)
  7. cocos2d-x初探学习笔记(5)--动作管理
  8. cocos2d-x游戏开发(二)开始菜单续
  9. BufferQueue 和 gralloc
  10. Socket之UDP客户端【Python】