`
drug
  • 浏览: 12137 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

上传利用GitHub管理的软件到Maven Central Repository之三

阅读更多

完成前两篇的准备工作以后,我们就要开始正式的发布工作了。如果没有完成前面的准备,请参阅:

上传利用GitHub管理的软件到Maven Central Repository之一

上传利用GitHub管理的软件到Maven Central Repository之二

 

下面开始进入正题:

 

首先,为了后续的操作顺利执行,我们要确保项目的整个目录没有本地未提交的修改,最好先pull一遍确保后续的步骤里没有冲突。然后运行:

mvn release:prepare

 

这条命令会做以下几件事:

  • 检查本地是否有未提交的代码
  • 检查是否有可用的SNAPSHOT版本
  • 修改pom.xml文件的版本信息到下个目标版本(在运行过程中会提示用户输入下个目标版本,例如当前是1.0-SNAPSHOT,就可以输入1.1或者2.0,Maven会自动加上SNAPSHOT后缀变成1.1-SNAPSHOT并自动提交)
  • 自动将当前的项目打包,提交到GitHub(期间会要求用户输入tag的信息)

 

如果命令顺利运行结束,那么这个步骤就算完成了。如果中间出现了什么问题,可以在修复问题后再次运行这条命令,如果想要获得更详细的信息,可以运行:

mvn release:prepare -X

 

如果不希望从终止的地方开始,而是想从头再来的话可以输入:

mvn release:prepare -Dresume=false

 

完成了release的准备工作以后就可以正式release了,输入:

mvn release:peform -Darguements=-Dgpg.passphrase=<之前生成的KEY的密码>

 

如果这步也成功了,恭喜你,你的项目已经进入了Sonatype Nexus的staging仓库。接下来就要登录:

 

https://oss.sonatype.org/

 

登录以后选择左侧的"Staging Repository",然后在仓库列表中找到自己的仓库,仓库名字一般包含项目的groupId。选中仓库以后按上方的"Close"按钮,等到状态变成"closed",并且下方的Summary显示“Last operation completed successfully”之后,就可以按"Close"按钮旁边的"Release"按钮。

 

接下来,要在Jira的ticket上加个comment告诉客服你的项目已经发布了。只有第一次发布才需要这么做,客服会手动把你的项目同步的Central Repository里,以后这个过程是全自动的,大概每两个小时就同步一次。最后只要等待客服告诉你同步已经开始并把ticket关闭。

 

几个小时后就能够在http://search.maven.org/找到你的项目了!

分享到:
评论
1 楼 bookong 2014-05-18  
博主写的真详细,最近也有这方面的计划,这个系列文章对我帮助很大

相关推荐

    Java idea maven repository

    Java IDEA Maven Repository是Java开发中的一个重要概念,它与IntelliJ IDEA这个强大的集成开发环境...通过理解Maven仓库的工作原理,以及如何在IDEA中有效利用它,开发者能够更好地管理他们的项目并提升开发效率。

    将jar包添加到本地maven仓库

    在Java开发中,Maven作为项目管理和构建工具,广泛用于管理依赖关系。有时,我们可能会遇到一些不常见的库或者自定义的jar包,这些库并未在Maven中央仓库中提供,这时就需要将这些jar包手动添加到本地Maven仓库,...

    maven-repository

    Maven仓库 该项目将以Maven存储库的形式发布TeamVK公开发布的Java资源。 如何使用 为了使用此Maven存储库,您可以使用各种插件(用于您的构建系统,例如Gradle和... mavenCentral() github("teamvk", "maven-repositor

    sonatype与腾讯云配合构建项目到中央仓库.docx

    Sonatype是管理Maven Central Repository的主要平台,它要求所有提交的开源项目都必须经过审核。注册时,选择"Community Support - Open Source"项目类型,并提供New Project的信息。特别要注意填写Group Id,这是你...

    Android代码-dbf

    Maven artifact is available from maven central repository. Just add dependency in your pom.xml: org.jamel.dbf dbf-reader 0.0.3 Supported fields types DBF field type Returned as character ...

    maven教程.pdf

    - **中央仓库** (Central Repository): Maven 默认使用的公共仓库,包含大量常用的 Java 库。 - **自定义远程仓库**: 开发者可以设置自己的远程仓库来托管私有或特定版本的依赖。 - **仓库配置**: - **settings....

    maven仓库 org开头的jar

    远程仓库又可以分为中央仓库(Central Repository)和其他第三方仓库。 `org`前缀的jar包通常指的是这些库按照Maven的坐标系统进行组织。Maven坐标由groupId、artifactId和version三部分组成,例如`org.spring...

    Android代码-RxAssetManager

    Use the jcenter() or mavenCentral() repository. repositories { jcenter() mavenCentral() } Then pick a module. Core dependencies { implementation ...

    action-maven-publish::package:用于自动发布Maven包的GitHub Action

    Maven发布动作GitHub Action用于自动发布Maven软件包总览这个动作执行Maven deploy生命周期阶段为Maven提供您的GPG密钥和密码,以便您可以使用maven-gpg-plugin对工件进行签名向Maven提供您的Nexus凭据,以便它可以...

    Maven中央仓库地址配置大全

    第二种方式是将 Maven 的远程仓库统一的配置到 Maven 的 Settings.xml 的配置文件中,这种方式更加推荐。 下面是 Maven 中央仓库地址配置大全中的一些常用的地址: 1. 阿里中央仓库(首推1) &lt;repository&gt; &lt;id&gt;...

    Android代码-Android Common Library Samples

    The project is based on Maven 3. In order to build it you need to install Apache Maven and run 'mvn install' command. Some modules of project contain dependencies not included in Maven Central - to ...

    android中moudle打包aar离线在线模式.doc

    Android 中的 Module 打包是指将多个模块打包成一个 AAR 文件,并上传到 GitHub 远程仓库中,实现模块之间的依赖关系管理。本文将详细介绍在 Android Studio 中如何实现 Module 打包,包括在线模式和离线模式两种...

    Android代码-webbit

    Prebuilt JARs are available from the central Maven repository or the Sonatype Maven repository. Alternatively, you can get the latest code from Git and build it yourself: git clone git://github....

    gwtp-dispatch-rpc-client-1.1.1.zip

    4. **Maven Central Repository**:Maven中央仓库是Java生态中最重要的第三方库存储库,大多数开源Java项目都会将它们的JAR文件发布到这里,使得其他开发者可以通过Maven或Gradle等构建工具方便地引入依赖。...

    完整jar包资源,COULD NOT FIND tephra,包缺失使用

    3. **手动下载**:像在这个案例中,你可以从其他来源(如GitHub或其他开发者分享的资源)找到缺失的JAR包和对应的pom文件,然后手动下载并放置到本地的`.m2\repository`目录下。`.m2\repository`是Maven默认的本地...

    android-async-http 源码

    Build Status ... Changelog See what is new in version 1.4.9 released on 19th September... mavenCentral() } } dependencies { compile 'com.loopj.android:android-async-http:1.4.9' } development snapshots ...

    latest-unix.tar.gz

    2. **缓存远程仓库**:Nexus可以缓存来自公共Maven仓库(如Central Repository)的工件,减少网络延迟并提高构建速度。 3. **代理仓库**:它可以作为其他仓库的代理,如GitHub Packages或JFrog Artifactory,统一...

    Android 引用第三方库的方法.zip源码资源下载

    mavenCentral() // 可能还有其他仓库,如Google的maven仓库 maven { url 'https://maven.google.com' } } ``` - **添加依赖**:在同一个`build.gradle`文件的`dependencies`块中,添加所需库的依赖。例如,...

    CustomDownSelect:自定义筛选条件功能

    mavenCentral() } allprojects { repositories { google() jcenter() maven { url 'https://jitpack.io' } mavenCentral() } } 依赖项{实现'com.github.gyadministrator:CustomDownSelect:1.2'} Maven...

    remoteRepository

    Gradle也有类似的概念,通过`repositories`块定义远程仓库,如JCenter或MavenCentral。在构建脚本中声明`remoteRepository`可以帮助构建工具找到并下载项目所依赖的外部库,从而构建出可执行的Java应用程序或库。 ...

Global site tag (gtag.js) - Google Analytics