使用github作为maven仓库
本文介绍的这种使用 github 作为 maven 仓库的思路主要为:
- github的项目上创建mvn-repo分支,使用mvn-repo分支作为maven仓库
- 配 置 pom.xml 使用 target/mvn-repo 作为本地部署的临时maven仓库
- 部署时使用 github site-maven-plugin 将本地的maven仓库 push 到 github 的项目的分支 mvn-repo 上去
以我的项目为例:https://github.com/buzheng/mybatis-pageable
首先通过配置pom.xml告诉maven将artifacts部署到一个target下的一个临时目录中,具体配置如下:
<plugin>
true<artifactId>maven-deploy-plugin</artifactId>
true<version>2.8.1</version>
true<configuration>
truetrue<altDeploymentRepository>internal.repo::default::file://${project.build.directory}/mvn-repo</altDeploymentRepository>
true</configuration>
</plugin>
|
配置完成后,运行命令 mvn clean deploy 后发现已经部署maven仓库到 target/mvn-repo 目录下。然后我们要做的就是将该目录上传到github中。
在 ~/.m2/settings.xml 中添加github的授权信息,以便 github 的 site-maven-plugin 能够push文件到github,配置信息如下:
<server>
<id>github</id>
<username>你在github的帐号</username>
<password>你在github的用户名</password>
</server>
|
添加如下配置到 pom.xml 以告诉 github site-maven-plugin 服务器信息
<properties>
true<!-- github server corresponds to entry in ~/.m2/settings.xml -->
true<github.global.server>github</github.global.server>
</properties>
|
最后配置 github site-maven-plugin 插件
<plugin>
true<groupId>com.github.github</groupId>
true<artifactId>site-maven-plugin</artifactId>
true<version>0.9</version>
true<configuration>
truetrue<message>Maven artifacts for ${project.version}</message> <!-- git commit message -->
truetrue<noJekyll>true</noJekyll> <!-- disable webpage processing -->
truetrue<outputDirectory>${project.build.directory}/mvn-repo</outputDirectory> <!-- matches distribution management repository url above -->
truetrue<branch>refs/heads/mvn-repo</branch> <!-- remote branch name -->
truetrue<includes>
truetruetrue<include>**/*</include>
truetrue</includes>
truetrue<repositoryName>mybatis-pageable</repositoryName> <!-- github repo name -->
truetrue<repositoryOwner>buzheng</repositoryOwner> <!-- github username -->
true</configuration>
true<executions>
truetrue<!-- run site-maven-plugin's 'site' target as part of the build's normal
truetruetrue'deploy' phase -->
truetrue<execution>
truetruetrue<goals>
truetruetruetrue<goal>site</goal>
truetruetrue</goals>
truetruetrue<phase>deploy</phase>
truetrue</execution>
true</executions>
</plugin>
|
配置完成,运行命令 mvn clean deploy后,登录github,发现已经创建 mvn-repo 分支,并上传了 本地的 target/mvn-repo 目录。
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building mybatis-pageable 0.1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ mybatis-pageable ---
[INFO] Deleting E:\workspace\mybatis-pageable\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mybatis-pageable ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ mybatis-pageable ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 6 source files to E:/workspace/mybatis-pageable/target/classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ mybatis-pageable ---
[INFO] Not copying test resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ mybatis-pageable ---
[INFO] Not compiling test sources
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ mybatis-pageable ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ mybatis-pageable ---
[INFO] Building jar: E:/workspace/mybatis-pageable/target/mybatis-pageable-0.1.jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ mybatis-pageable ---
[INFO] Installing E:/workspace/mybatis-pageable/target/mybatis-pageable-0.1.jar to C:/Users/Adam.my-pc/.m2/repository/org/buzheng/mybatis-pageable/0.1/mybatis-pageable-0.1.jar
[INFO] Installing E:/workspace/mybatis-pageable/pom.xml to C:/Users/Adam.my-pc/.m2/repository/org/buzheng/mybatis-pageable/0.1/mybatis-pageable-0.1.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.8.1:deploy (default-deploy) @ mybatis-pageable ---
[INFO] Using alternate deployment repository internal.repo::default::file://E:/workspace/mybatis-pageable/target/mvn-repo
Uploading: file://E:/workspace/mybatis-pageable/target/mvn-repo/org/buzheng/mybatis-pageable/0.1/mybatis-pageable-0.1.jar
Uploaded: file://E:/workspace/mybatis-pageable/target/mvn-repo/org/buzheng/mybatis-pageable/0.1/mybatis-pageable-0.1.jar (15 KB at 1020.2 KB/sec)
Uploading: file://E:/workspace/mybatis-pageable/target/mvn-repo/org/buzheng/mybatis-pageable/0.1/mybatis-pageable-0.1.pom
Uploaded: file://E:/workspace/mybatis-pageable/target/mvn-repo/org/buzheng/mybatis-pageable/0.1/mybatis-pageable-0.1.pom (4 KB at 907.5 KB/sec)
Downloading: file://E:/workspace/mybatis-pageable/target/mvn-repo/org/buzheng/mybatis-pageable/maven-metadata.xml
Uploading: file://E:/workspace/mybatis-pageable/target/mvn-repo/org/buzheng/mybatis-pageable/maven-metadata.xml
Uploaded: file://E:/workspace/mybatis-pageable/target/mvn-repo/org/buzheng/mybatis-pageable/maven-metadata.xml (303 B at 147.9 KB/sec)
[INFO]
[INFO] --- site-maven-plugin:0.9:site (default) @ mybatis-pageable ---
[INFO] Creating 9 blobs
[INFO] Creating tree with 10 blob entries
[INFO] Creating commit with SHA-1: ac8a117fa05c3a24f057a684519d5edade5d4e64
[INFO] Updating reference refs/heads/mvn-repo from cf1389181d9559b6926a26e852aa2b605b46da1e to ac8a117fa05c3a24f057a684519d5edade5d4e64
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.124s
[INFO] Finished at: Mon Jun 16 15:47:54 CST 2014
[INFO] Final Memory: 24M/178M
[INFO] ------------------------------------------------------------------------
|
到此为止,项目的已经部署到github上。如果其他项目依赖此项目,需要在pom.xml中添加如下配置后,再添加相应的依赖关系即可。
<repositories>
true<repository>
truetrue<id>mybatis-pageable-mvn-repo</id>
truetrue<url>https://raw.github.com/buzheng/mybatis-pageable/mvn-repo/</url>
true</repository>
</repositories>
|
完成!
这种方法相当方便,只需要几个简单的配置,便能自动将jar包发布到github上。
参考:http://stackoverflow.com/questions/14013644/hosting-a-maven-repository-on-github
使用github作为maven仓库的更多相关文章
- 使用github作为maven仓库存放发布自己的jar包依赖 实现多个项目公共部分代码的集中,避免团队中多个项目之间代码的复制粘贴
使用github作为maven仓库存放发布自己的jar包依赖 实现多个项目公共部分代码的集中,避免团队中多个项目之间代码的复制粘贴. 1.首先在本地maven位置的配置文件setting.xml(没有 ...
- Github作为Maven仓库
新建发布构件项目 新建一个普通的maven项目,坐标为 创建一个类: 接着在pom文件中添加: <distributionManagement> <repository> &l ...
- 使用GitHub作为Maven仓库并引用
网上太多的博客都是那些傻逼抄袭,然后直接复制粘贴然后就成为自己的博客了,这种人,真的很欠揍,我在网上查了一个下午的资料,终于找到一个写得非常详细的兄弟 链接如下:https://blog.csdn.n ...
- 如何使用GitHub创建Maven私有仓库
[Github上创建仓库] 首先,在GitHub上创建自己的仓库(mvn-repo): [配置本地setting文件] 找到本地的maven settings文件,配置server: 有两种选择,可以 ...
- 利用github搭建个人maven仓库
之前看到有开源项目用了github来做maven仓库,寻思自己也做一个.研究了下,记录下. 简单来说,共有三步: deploy到本地目录 把本地目录提交到gtihub上 配置github地址为仓库地址 ...
- 利用github搭建私人maven仓库
一.背景 最近在做HBase的项目,不免会引用到一些工具类,如StringUtils,NumberUtils,DateUtils这些,公司底层有封装好可以直接使用. 但是项目完成,用maven打包部署 ...
- 发布jar包到远端github仓库使用(将github仓库当作maven仓库)
今天把单点登陆的core模块搬到了github仓库 并且利用github仓库作为maven仓库 在项目中进行了引用 1. 起初看技术博客没有完全引入进来,调整了一下OK了 2. 还可以将其他模块或者工 ...
- 拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建
使用.创造和分享 笔者曾经不思量力的思考过『是什么推动了互联网技术的快速发展?』这种伟大的命题.结论是,除了摩尔定律之外,技术经验的快速积累和广泛分享,也是重要的原因. 有人戏称,『写 Java,首先 ...
- 国内下载比较快的Maven仓库镜像
#收集的比较快的maven仓库 http://maven.wso2.org/nexus/content/groups/public/ http://jcenter.bintray.com/http:/ ...
随机推荐
- android 改变状态栏(StatusBar)颜色
public static void changeColor(Activity paramActivity, int paramInt1) { if (Build.VERSION.SDK_INT &g ...
- Git 仓库结构 (一)***
Git 仓库 1.1Git 基本概念 在Git中,我们将需要进行版本控制的文件目录叫做一个仓库(repository),每个仓库可以简单理解成一个目录,这个目录里面的所有文件都通过Gi ...
- 小程序-demo:知乎日报
ylbtech-小程序-demo:知乎日报 1.返回顶部 0. 1.app.js //app.js App({ onLaunch: function () { //调用API从本地缓存 ...
- ppt自动制作器
讲一篇论文导入进入,自动生成该论文的展示ppt,啧啧啧,想想岂不是很美妙
- RT-Thread 设备驱动ADC浅析与改进
OS版本:RT-Thread 4.0.0 芯片:STM32F407 下面时官方ADC提供的参考访问接口 访问 ADC 设备 应用程序通过 RT-Thread 提供的 ADC 设备管理接口来访问 ADC ...
- 实验 - cut的应用
题目一: 1.1 创建一个通讯录 vi phone.txt #进行编辑 cat phone.txt #查看内容 2.1 取出手机号码 cut -f phone.txt 3.1 取出手机前三位 cut ...
- SQL 初级教程学习(三)
1.SQL JOIN NNER JOIN:如果表中有至少一个匹配,则返回行 LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的 ...
- 【react native】rn踩坑实践——从输入框“们”开始
因为团队技术栈变更为react native,所以开始写起了rn的代码,虽然rn与react份数同源,但是由于有很多native有关的交互和变动,实际使用还是碰到蛮多问题的,于是便有了这个系列,本来第 ...
- Python实现判断回文串
回文数的概念:即是给定一个数,这个数顺读和逆读都是一样的.例如:121,1221,a,aa是回文数,123,1231不是回文数. while 1: String = input('请先输入一个字符串 ...
- Canny检测理解和Matlab实现
图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值. 1.Canny边缘检测的基本特征 (1) ...