`
m635674608
  • 浏览: 5043542 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

基于Github搭建Maven仓库的方法

 
阅读更多

Maven 是一个项目管理和构建自动化工具, Maven仓库 是用于存放不同编译的artifacts和dependencies(依赖)的模块集合。严格而言,主要有两类仓库: local(本地) 和 remote(远端) 。

本地仓库存放本地安装的来自远端仓库的模块,可看作远端模块在本地的一份缓存,同时也包含本地编译尚未发布的模块。远端仓库指任何类型的仓库,能够通过许多不同的协议访问,如file://和http://,可以是“真正的”类似repo.maven.org由第三方提供的远程仓库用于提供公开模块下载,也可用于团队内部基于文件或者http服务器分享私有模块。

不论本地还是远端仓库都是满足相同的结构规则,因此远端模块很容易共享到任何地方,也可以同步到本地以离线环境下使用。一般而言这些仓库的构造对于maven用户是完全透明的。

一般而言,业界已经有许多成熟的maven仓库解决方案,如Nexus等,只需拥有一台服务器,并下载并安装maven仓库服务软件,然后启动即可。但对于个人开发者而言,若需要搭建用于分享和发布个人开发artifacts的公开maven仓库,选择之一自然是购买一台vps服务器,然后安装maven仓库服务软件,然而另外一种完全免费的选择则是完全基于github实现,本文将为您详细介绍后一种更为极客的实践方案。其原理是利用github的git push来发布artifects,利用github提供的公开raw服务提供对外下载服务。当向开源社区共享自己开发的artifects时,只需要提供模块pom信息和个人独一无二的仓库地址即可:

https://raw.github.com/${github_account}/maven/snapshot/
https://raw.github.com/${github_account}/maven/release/

准备

申请Github帐号并配置ssh public key: http://github.com
安装Git工具: http://git-scm.com
安装Maven工具: http://maven.apache.org

搭建过程

  1. 利用github网站中创建一个新的仓库,记下仓库地址:
    git@github.com:${github_account}/maven.git
  2. 进入 ${HOME}/.m2/repository/,初始化git本地仓库,添加员段地址。
    $ cd ~/.m2/repository
    $ git init
    $ git add remote origin git@github.com:hchen9/maven.git
  3. 创建.gitignore 将文件匹配符*加入其中, 并将.gitignore提交git本地仓库master分支
    $ echo "*" >> .gitignore
    $ git add .gitgnore
    $ git commit -m 'add .gitignore by ignoring all'
  4. 分别创建分支snapshot与release并push至远端仓库,用于发布不同状态的artifects,默认情况切换至snapshot

    $ git branch snapshot
    $ git branch release
    $ git push origin snapshot
    $ git push origin release
    $ git checkout snapshot
  5. 当开发完成发布新的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
  6. 在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可以和日常开发工作有效的融合。




原文链接:http://www.jianshu.com/p/3111bcf96cdf

分享到:
评论

相关推荐

    使用GitHub搭建Maven私库

    ### 使用GitHub搭建Maven私库 #### 背景与目的 随着软件开发项目的增多和个人技术积累的增长,很多开发者会有构建个人Maven私库的需求。这样不仅能够方便地管理自己开发的各种组件、库或者工具,还能高效地进行...

    利用github搭建个人maven仓库的方法步骤

    总结起来,利用GitHub搭建个人Maven仓库是一个简单且实用的方法,它可以帮助你管理和共享自定义的依赖。只需要几步简单的配置,你就可以将本地仓库与GitHub同步,并在任何使用这个配置的项目中使用这些依赖。尽管...

    linux下maven环境搭建.doc|linux下maven环境搭建.doc

    在Linux环境下搭建Maven是Java开发者进行项目构建和管理的重要步骤,特别是在处理像Hadoop这样的大型Java项目时,Maven的使用变得尤为关键。本文将详细介绍如何在Linux系统上安装和配置Maven,并探讨其与Java、...

    eclipse+egit安装使用+maven安装项目搭建

    在 GitHub 网站上创建一个新的仓库,记下仓库 URL,用于后续的 Git 连接。 20四、提交 在 Eclipse 中,将项目关联到 Git 仓库,进行初次提交。通过右键点击项目,选择 Team &gt; Share Project,然后选择 Git,按照...

    Windows平台搭建Jenkins+maven+git实现自动发布已经越过几道坑

    ### Windows平台搭建Jenkins+maven+git实现自动发布的知识点 #### 一、环境准备与配置 在Windows平台上搭建Jenkins+maven+git实现自动化发布,首先需要准备好以下环境: - **JDK**: 安装Java Development Kit (JDK)...

    maven+jenkins+sonar集成搭建

    1. **下载 Sonar-Runner**:从SonarQube的GitHub仓库下载SonarScanner的可执行文件。 2. **配置 Sonar-Runner**:配置环境变量,包括`SONAR_HOME`和`PATH`,确保SonarScanner可执行文件在系统路径中。 3. **测试文件...

    MAVEN 搭建APPFUSE

    【MAVEN 搭建APPFUSE】是一个关于使用Maven构建基于AppFuse的应用程序的教程。AppFuse是一个开源项目,旨在简化Web应用程序的开发,它提供了一个基础框架,可以帮助开发者快速启动新项目,整合了Spring、Hibernate、...

    JEECG 开发环境搭建(Maven-eclipse)3.7

    - 选择JEECG的`pom.xml`模板,通常从官方仓库或GitHub获取。 - 确认项目配置无误后,点击`Finish`创建项目。 5. **导入JEECG源码** - 将JEECG源码克隆或下载到本地,然后在Eclipse中选择`File &gt; Import`。 - ...

    基于 Maven 编译的 SpringBoot 部署案例

    - `mvn install`:将打包好的jar安装到本地Maven仓库,便于其他项目依赖。 5. **部署**:完成构建后,需要将SpringBoot应用部署到云主机。这可能涉及以下操作: - 在云主机上配置Java环境,确保JDK版本与项目兼容...

    maven in action

    4. **源码仓库**:GitHub 或其他版本控制系统托管 Maven 的源代码,方便用户查看和贡献。 5. **持续集成**:使用 Jenkins 或 Travis CI 等工具进行持续集成测试,确保代码的质量和稳定性。 ### Maven 的详细使用...

    Jenkins持续集成maven+jmeter+git接口自动化测试框架.pdf

    背景:jenkins作为中央调度器,集成java、maven、git、email、html-report环境,搭建 一个自动化测试框架,可性能也可...2、准备测试代码上传到github,jenkins配置maven、git插件; 3、直接上图配置,一个步骤一步来:

    简单的Maven+SSM+MySQL+C3P0+BootStrap 。初次整合完成,学习Git提交github分享.zip

    9. GitHub:GitHub是全球最大的开源软件托管平台,开发者可以在这里创建仓库,托管项目,进行版本控制和协作。作者将项目提交到GitHub,便于他人查看、学习和贡献代码。 通过这个项目,你可以学习到如何搭建一个...

    基于Spring boot博客的下载地址(imooc实战)

    源码仓库地址和介绍地址 https://github.com/codingZhangxin/BootBlog, imooc实战课程项目-基于Spring boot博客的搭建教程 技术栈 后端: SpringBoot+ElasticSearch+SpringSecurity 前端: Thymeleaf/Bootstrap/...

    maven工程sample

    4. **打包与安装**:使用`mvn package`命令,Maven会将编译后的类打包成指定格式(如JAR或WAR),`mvn install`会将包安装到本地仓库,方便其他项目引用。 ** Maven的生命周期与插件 ** 1. **生命周期**:Maven有...

    Github仓库-README1

    【在线考试系统】是一个基于Vue和SpringBoot的前后端分离的项目,旨在为软件质量保证与测试课程提供一个在线考试平台。系统分为学生端、教师端和管理员端,采用现代化的前端技术和SpringBoot搭建的后端框架。 **...

    jenkins+gitlab+centos7+windows自动化环境搭建

    GitLab作为代码仓库,替代GitHub,便于本地环境搭建。在CentOS上,你可以通过Yum安装GitLab社区版。安装完成后,配置GitLab的URL以供Jenkins使用。 **Jenkins与GitLab集成** 为了实现GitLab推送到Jenkins的自动构建...

    Linux环境下maven编译好的RocketMQ最新版本4.3.0

    你可以从RocketMQ的官方GitHub仓库克隆或下载4.3.0版本的源代码。进入源代码目录,你会看到一个名为`pom.xml`的文件,这是Maven项目的配置文件。 在Linux命令行中,使用以下命令编译RocketMQ: ```bash mvn clean ...

    jenkins持续集成环境搭建步骤

    - **Nexus**:作为 Maven 构件仓库管理系统,提供了构件存储和管理的功能。 - **Tomcat 7**:作为 Jenkins 的运行容器。 - **Maven 3.2.2**:用于构建和管理 Java 项目。 - **Jenkins.war**:Jenkins 的可执行文件。...

Global site tag (gtag.js) - Google Analytics