将Java项目发布到Maven中

如何通过Sonatype进行发布Maven操作,并且能够在http://search.maven.org 中搜索到
关键步骤:
1. 申请OSS账号
2. 通过gpg创建密钥
3. 完善setting.xml和pom.xml
4. 发布审核

A. 申请Sonatype账号

  1. 注册地址: https://issues.sonatype.org/secure/Signup!default.jspa

B. 创建Issue

  1. 创建地址: https://issues.sonatype.org/secure/Dashboard.jspa,点击 Create Issue

  2. 选择 Community Support - Open Source 下的 New Project

  3. 填入 Group Id 、 Project URL 、 SCM url (SVN 或者 GIT地址) 信息

C. 等待审核

  1. 当发现有人回复 Configuration has been prepared, now you can ,说明审核通过

  2. 需要注意如下重要内容

  • snapshotRepository

  • repository

1
2
3
4
5
6
7
8
9
10
Configuration has been prepared, now you can:
    # snapshotRepository:该地址将会被用在pom.xml中的distributionManagement中的snapshotRepository的url
    Deploy snapshot artifacts into repository https://oss.sonatype.org/content/repositories/snapshots
    # repository:该地址将会被用在pom.xml中的distributionManagement中的repository的url
    Deploy release artifacts into the staging repository https://oss.sonatype.org/service/local/staging/deploy/maven2
     
Promote staged artifacts into repository 'Releases'
    Download snapshot and release artifacts from group https://oss.sonatype.org/content/groups/public
    Download snapshot, release and staged artifacts from staging group https://oss.sonatype.org/content/groups/staging
    please comment on this ticket when you promoted your first release, thanks

D. 创建公钥私钥

  1. 如果在Windows下,你需要安装 Cygwin, 不过为了一步到位,直接下载Git Bash就好了,这个GIT Bash就是Cypwin集成了Git而已

  2. 在Linux下就不用了,一般都会有 gpg 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建公钥,创建时,会提示填入账号和邮箱
gpg --gen-key
# 查看已有的公钥私钥
gpg --list-keys
# 找到自己创建账号的私钥
pub 2048R/公钥内容 2014-05-28 
uid username<username@mail.com>
sub 2048R/私钥内容 2014-05-28
# 发布公钥
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 公钥内容

E. 修改settings.xml

  1. settings.xml 是属于Maven的配置文件,可以通过这两个方法找到

  2. 全局的配置在 $MAVEN_HOME/conf/settings.xml 中找到,也就是Maven的安装位置

  3. 用户的配置在 用户目录 下的 ~/.m2/settings.xml 中找到,例如 C:/Users/用户名/.m2/settings.xml, 当然,有可能不存在这个文件,那么就可以把全局配置复制到这里即可

servers添加账号

1
2
3
4
5
6
7
8
<servers>
    ...
    <server>
        <id>oss</id>
            <username>账号</username>
            <password>密码</password>
    </server>
</servers>

F. 修改pom.xml

pm.xml中添加descriptionlicenses, developers ,scm以及profiles

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<description>Validation Framework for Java Development</description>
<licenses>
    <license>
        <name>MIT</name>
        <url>http://mit-license.org/</url>
    </license>
</licenses>
<developers>
    <developer>
        <name>姓名</name>
        <email>邮箱</email>
    </developer>
</developers>
<scm>
    <connection>scm:git@github.com:41zone/Validation.FO.git</connection>
    <developerConnection>scm:git@github.com:41zone/Validation.FO.git</developerConnection>
    <url>git@github.com:41zone/Validation.FO.git</url>
</scm>
<profiles>
    <profile>
        <id>release</id>
        <distributionManagement>
            <!-- 初步审核通过后,会给你这个内容,在上面已经给出 -->
            <snapshotRepository>
                <id>oss</id>
                <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            </snapshotRepository>
            <!-- 初步审核通过后,会给你这个内容,在上面已经给出 -->
            <repository>
                <id>oss</id>
                <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
            </repository>
        </distributionManagement>
        <build>
            <plugins>
                <!-- Source -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.2.1</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>jar-no-fork</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!-- Javadoc -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.9.1</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>1.5</version>
                    <executions>
                        <execution>
                            <id>sign-artifacts</id>
                            <phase>verify</phase>
                            <goals>
                                <goal>sign</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

G. 发布到OSS中

如果通过Eclipse进行执行可能会出问题,所以可以通过命令行进行操作

1
mvn clean deploy -P release -Dgpg.passphrease=公钥内容

H. 发布构建

  1. 进入 https://oss.sonatype.org/,这个加载会有些慢

  2. 左侧点击 Staging Repositories

  3. 会发现有以 GroupID - XXXX 格式的记录,例如 ccfozonevalidation-1000,选中后,选择上方的 Close

  4. 稍等一会儿进行刷新,如果在下方的 Summary 中的 Activity 出现 红色 标识,说明有错误,点击旁边的 Activity 进行查看 红色 标识的内容

  5. 按照操作,之后再进行 G 步骤操作,直到成功 Activity 为 绿色 标识

  6. 此时选择上方的 Release ,进行正式发布

J. 最后的审核

  1. 发布成功后,进入之前创建的Issue,添加Comment,说已经成功了,可以写 My Project has been successfully released.

  2. 审核成功后,即可在 http://search.maven.org 中进行搜索我们的框架了

  3. 当然,你可以在OSS中预览检索你的组件,https://oss.sonatype.org/content/groups/public

本文转自 sundunjam 51CTO博客,原文链接:http://blog.51cto.com/sunspot/1560907,如需转载请自行联系原作者

【狂人小白】如何将Java项目发布到Maven中相关推荐

  1. Docker java项目发布/开发环境搭建

    Docker java项目发布/开发环境搭建 线上部署项目/开发环境搭建命令大全 关闭windows10 指定应用 安装Docker 安装 docker-compose 关于docker容器导致硬盘耗 ...

  2. Tomcat快速入门(Tomcat安装 把一个项目发布到tomcat中 Eclipse配置Tomcat idea配置tomcat)

    文章目录 服务器的概念 服务器 Web服务器软件:接收客户端发送的请求和响应客户端请求. 常见的Web服务器软件 Tomcat安装 win下启动乱码问题解决 Tomcat目录介绍 如何把一个项目发布到 ...

  3. 如何将自己开源的项目发布到maven中央仓库

    关注"Java艺术"一起来充电吧! 如何将开源项目发布到maven中央仓库,让别人通过依赖使用你的开源项目,想必很多朋友都有过这个想法. 去年我就想将自己开源的一个miniexce ...

  4. 将一个普通的java项目转化为maven项目

    在学习Spring事务时,我参考的书的源码不是maven项目,整本书依赖的100多个jar包都在一个文件夹里,我本来对spring每个模块的学习源码都放在一个Github仓库里,每一个项目都是mave ...

  5. 将已有项目转为se项目_如何将 Java 项目转换成 Maven 项目

    本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明确的是,用 Maven 管理 Java 项目的确 ...

  6. maven私服、将项目发布到maven私服、从私服下载jar到本地仓库、将第三方jar安装到本地仓库和maven私服

    上面启动start时,jdk1.9报错,解决方法参考:https://blog.csdn.net/qq_33638719/article/details/83064664 访问http://local ...

  7. Java新手小白入门篇 Java项目的构建

    前言 之前我们已经讲解了 JDK的下载安装及配置操作 和 IDEA的下载和安装 ,学习Java的准备工作我们已经做好了,下面我们需要做的就是创建项目,并且写我们的 Java 程序了 一.如何使用IDE ...

  8. Java 项目JDBC 链接数据库中会出现的错误

    1.出现的地方 1 package com.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 impor ...

  9. Java项目如何改成maven_普通java项目改进为maven:ecplise

    首先:项目上右击->configure->Convert to Maven Project 将项目转化为maven项目. 或者在.project文件中natures节添加 org.ecli ...

最新文章

  1. hp laser103 属性没有配置项_冰雪传奇:起源之上还有装备吗?详解鸿蒙装备合成与属性...
  2. ubuntu 防火墙打开关闭
  3. find your place
  4. service 层 拼接的html 代码如何直接返回_代码分层的设计之道
  5. 2017.3.8 太空飞行计划问题 失败总结
  6. python快速比较两个json_Python 比较两个json的方法
  7. 七夕单日票房破5亿!创复工后单日票房新高
  8. java 标注 json_java – 注释资源以生成JSON,但在响应头中返回“text/plain”
  9. mysql 给已存在的商品数据,根据商品ID增加商品编号
  10. [NIO]dawn之Task具体解释
  11. Hyperion神器之SmartView产品(下篇)
  12. 利用kaptcha生成登录验证码
  13. 小程序开发之AppID获取
  14. YS13-3荧光管时钟设计
  15. 业务流程与组织结构优化
  16. .net 生成拼音码与五笔码
  17. 2021 长安杯 Re
  18. Node.js基础(二)-- 模块化、npm与包
  19. krpano教程之字幕添加,配合语音解说滚动字幕
  20. Sizzle选择器揭秘--Sizzle选择器

热门文章

  1. linux初学者-普通磁盘分区篇
  2. 三年级计算机画图,三年级面积作图题_小学三年级要求画图
  3. 手机壳鸿蒙,手机壳黑榜发布 真相太惊人!
  4. 32位网卡驱动 2008_DPDK之网卡收包流程
  5. 去重复java_去重复数据(JAVA)
  6. 如何用数学和化学方法测量英国海岸线的长度
  7. JDBC query VARRAY on DB level
  8. Linux wildcard
  9. ssh密钥分发与ansible
  10. python扫描内网banner信息