【狂人小白】如何将Java项目发布到Maven中
将Java项目发布到Maven中
如何通过Sonatype进行发布Maven操作,并且能够在http://search.maven.org 中搜索到
关键步骤:
1. 申请OSS账号
2. 通过gpg创建密钥
3. 完善setting.xml和pom.xml
4. 发布审核
A. 申请Sonatype账号
注册地址: https://issues.sonatype.org/secure/Signup!default.jspa
B. 创建Issue
创建地址: https://issues.sonatype.org/secure/Dashboard.jspa,点击 Create Issue
选择 Community Support - Open Source 下的 New Project
填入 Group Id 、 Project URL 、 SCM url (SVN 或者 GIT地址) 信息
C. 等待审核
当发现有人回复 Configuration has been prepared, now you can ,说明审核通过
需要注意如下重要内容
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. 创建公钥私钥
如果在Windows下,你需要安装 Cygwin, 不过为了一步到位,直接下载Git Bash就好了,这个GIT Bash就是Cypwin集成了Git而已
在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
settings.xml
是属于Maven的配置文件,可以通过这两个方法找到全局的配置在
$MAVEN_HOME/conf/settings.xml
中找到,也就是Maven的安装位置用户的配置在 用户目录 下的
~/.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
中添加description
,licenses
, 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. 发布构建
进入 https://oss.sonatype.org/,这个加载会有些慢
左侧点击 Staging Repositories
会发现有以
GroupID - XXXX
格式的记录,例如ccfozonevalidation-1000
,选中后,选择上方的Close
稍等一会儿进行刷新,如果在下方的
Summary
中的Activity
出现 红色 标识,说明有错误,点击旁边的Activity
进行查看 红色 标识的内容按照操作,之后再进行 G 步骤操作,直到成功
Activity
为 绿色 标识此时选择上方的
Release
,进行正式发布
J. 最后的审核
发布成功后,进入之前创建的Issue,添加Comment,说已经成功了,可以写
My Project
has been successfully released.
审核成功后,即可在 http://search.maven.org 中进行搜索我们的框架了
当然,你可以在OSS中预览检索你的组件,https://oss.sonatype.org/content/groups/public
【狂人小白】如何将Java项目发布到Maven中相关推荐
- Docker java项目发布/开发环境搭建
Docker java项目发布/开发环境搭建 线上部署项目/开发环境搭建命令大全 关闭windows10 指定应用 安装Docker 安装 docker-compose 关于docker容器导致硬盘耗 ...
- Tomcat快速入门(Tomcat安装 把一个项目发布到tomcat中 Eclipse配置Tomcat idea配置tomcat)
文章目录 服务器的概念 服务器 Web服务器软件:接收客户端发送的请求和响应客户端请求. 常见的Web服务器软件 Tomcat安装 win下启动乱码问题解决 Tomcat目录介绍 如何把一个项目发布到 ...
- 如何将自己开源的项目发布到maven中央仓库
关注"Java艺术"一起来充电吧! 如何将开源项目发布到maven中央仓库,让别人通过依赖使用你的开源项目,想必很多朋友都有过这个想法. 去年我就想将自己开源的一个miniexce ...
- 将一个普通的java项目转化为maven项目
在学习Spring事务时,我参考的书的源码不是maven项目,整本书依赖的100多个jar包都在一个文件夹里,我本来对spring每个模块的学习源码都放在一个Github仓库里,每一个项目都是mave ...
- 将已有项目转为se项目_如何将 Java 项目转换成 Maven 项目
本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明确的是,用 Maven 管理 Java 项目的确 ...
- maven私服、将项目发布到maven私服、从私服下载jar到本地仓库、将第三方jar安装到本地仓库和maven私服
上面启动start时,jdk1.9报错,解决方法参考:https://blog.csdn.net/qq_33638719/article/details/83064664 访问http://local ...
- Java新手小白入门篇 Java项目的构建
前言 之前我们已经讲解了 JDK的下载安装及配置操作 和 IDEA的下载和安装 ,学习Java的准备工作我们已经做好了,下面我们需要做的就是创建项目,并且写我们的 Java 程序了 一.如何使用IDE ...
- Java 项目JDBC 链接数据库中会出现的错误
1.出现的地方 1 package com.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 impor ...
- Java项目如何改成maven_普通java项目改进为maven:ecplise
首先:项目上右击->configure->Convert to Maven Project 将项目转化为maven项目. 或者在.project文件中natures节添加 org.ecli ...
最新文章
- hp laser103 属性没有配置项_冰雪传奇:起源之上还有装备吗?详解鸿蒙装备合成与属性...
- ubuntu 防火墙打开关闭
- find your place
- service 层 拼接的html 代码如何直接返回_代码分层的设计之道
- 2017.3.8 太空飞行计划问题 失败总结
- python快速比较两个json_Python 比较两个json的方法
- 七夕单日票房破5亿!创复工后单日票房新高
- java 标注 json_java – 注释资源以生成JSON,但在响应头中返回“text/plain”
- mysql 给已存在的商品数据,根据商品ID增加商品编号
- [NIO]dawn之Task具体解释
- Hyperion神器之SmartView产品(下篇)
- 利用kaptcha生成登录验证码
- 小程序开发之AppID获取
- YS13-3荧光管时钟设计
- 业务流程与组织结构优化
- .net 生成拼音码与五笔码
- 2021 长安杯 Re
- Node.js基础(二)-- 模块化、npm与包
- krpano教程之字幕添加,配合语音解说滚动字幕
- Sizzle选择器揭秘--Sizzle选择器