当前位置: 首页 > news >正文

商洛 网站建设武汉百捷集团百度推广服务有限公司

商洛 网站建设,武汉百捷集团百度推广服务有限公司,苏州网站关键词推广,日本 男女做受视频网站AV1.背景 当你写了一个自我感觉良好的开源工具希望给他人分享,如果只是在github等网站进行公布之外,用户使用起来还不是很方便,特别是当你提供是特定领域的基础工具。你还可以把它部署到中央仓库,这样别人使用就会方便很多。接下来…

1.背景

当你写了一个自我感觉良好的开源工具希望给他人分享,如果只是在github等网站进行公布之外,用户使用起来还不是很方便,特别是当你提供是特定领域的基础工具。你还可以把它部署到中央仓库,这样别人使用就会方便很多。接下来,我们就来看看如何使用maven发布自己依赖到中央仓库吧。

由于原先的sonatype网站已经退役,发布流程已经很大不一样。笔者只能根据官网摸着石头过河,一路踩坑才完成大业。

2.版本控制规则

先说下,对于发布的工具,我们还是要遵循基本的版本规则,采用常用的三段式。即

主版本号(Major version).次版本号(Minor version).修订号(Revision number)

如:1.2.3

  • 主版本号:版本的主要变更,通常添加新特性会增加主版本号,如从1升级到2.
  • 次版本号:版本的次要变更,修复bug或增加小特性会增加次版本号,如从2.1升级到2.2.
  • 修订号:版本的微小变更,通常修复bug或优化功能会增加修订号,如从2.2.1升级到2.2.2.

3.注册Sonatype账户

3.1Sonatype介绍

Sonatype是一家软件公司,专注于提供Maven和Nexus仓库管理工具。Sonatype负责管理和维护Maven中央仓库。该仓库是Maven生态系统中最重要的公共仓库之一,包含了大量的开源Java项目和库。

原先的网站https://issues.sonatype.org/secure/Signup!default.jspa 

官方已宣布退役,原文

3.2新注册网站

前往Maven Central: Search 注册,点击右上方的注册按钮。注册过程很简单,不详述。

3.3新建命名空间

注册成功,系统会弹出一个添加命名空间的界面。如果使用github账户登录,有可能不会弹出这个界面。因为系统自动会你创建一个 io.github.<your GitHub username>的命名空间。

发布依赖需要一个命名空间,也就是maven系统的groupId。如果自己没有申请公网域名的话,可以使用github这个免费域名。

3.4验证命名空间

在自己的github上创建一个临时项目,证明域名是自己的(临时仓库名字系统会提供,域名验证成功后可以删除)。

创建之后,等待一会会,可以看到命名空间的状态变为已验证

4.修改pom文件

根据sonatype的官方要求,修改项目的pom文件,参考下 官方对发布项目的基本要求

4.1增加标签

主要需要添加几个标签,如下所示

    <issueManagement><system>GitHub Issues</system><url>https://github.com/kingston-csj/jforgame/issues</url></issueManagement><scm><connection>scm:git:https://github.com/jforgame/jforgame.git</connection><developerConnection>scm:git:git@github.com:jforgame/jforgame.git</developerConnection><url>https://github.com/jforgame/jforgame</url></scm><licenses><license><name>Apache License, Version 2.0</name><url>http://www.apache.org/licenses/LICENSE-2.0.txt</url><distribution>repo</distribution></license></licenses><developers><developer><id>kingston-csj</id><name>kingston</name><email>definemyself@163.com</email><organizationUrl>https://github.com/kingston-csj</organizationUrl><roles><role>owner</role><role>developer</role></roles></developer></developers>

4.2部署包带上source文件和doc文件

sonatype要求部署的包要附带源代码及API文档,即增加两个文件

example-application-1.4.7-sources.jar
example-application-1.4.7-javadoc.jar

只需在pom文件加两个插件即可

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><id>attach-sources</id><goals><goal>jar-no-fork</goal></goals></execution></executions>
</plugin>
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>2.9.1</version><executions><execution><id>attach-javadocs</id><goals><goal>jar</goal></goals></execution></executions>
</plugin>

4.3提供文件校验码

对每个上传的文件(除了asc文件),需要附加校验码文件(md5+sha1)。
后文介绍(central-publishing-maven-plugin插件内嵌本功能)

假设你上传的文件为

example-application-1.4.7.pom
example-application-1.4.7.jar
example-application-1.4.7-sources.jar
example-application-1.4.7-javadoc.jar

需要部署的文件为

example-application-1.4.7.pom.md5
example-application-1.4.7.pom.sha1
example-application-1.4.7.jar.md5
example-application-1.4.7.jar.sha1
example-application-1.4.7-sources.jar.md5
example-application-1.4.7-sources.jar.sha1
example-application-1.4.7-javadoc.jar.md5
example-application-1.4.7-javadoc.jar.sha1

5.GPG签名

GPG(GNU Privacy Guard)是一种加密和签名工具,常用于软件包的签名和验证。在Maven中,GPG签名用于确保发布到远程仓库的依赖是经过验证和可信的。若希望发布依赖到远程仓库,需要进行GPG签名。

5.1下载GPG秘钥

前往官网下载 -->  gpg下载

5.2创建密钥 

使用Kleopatra(GPG可视化工具),创建密钥 

点击文件->新建OpenGPG秘钥对,输入名称和邮箱,勾选“使用密码句保护生成的密钥”

生成之后,右键证书,选择“在服务器上发布”

也可以选择使用命令行

gpg --keyserver keyserver.ubuntu.com --send-keys yourPublicKey

6.使用maven部署

6.1sonatype生成用户token

在 sonatype  生成用户token

6.2setting文件添加server

 maven配置文件setting.xml添加生成的token

<settings><servers><server><id>central</id><username>token-username</username><password>token-password</password></server></servers>
</settings>

6.3setting文件添加gpg签名

<settings><profiles><profile><id>ossrh</id><activation><activeByDefault>true</activeByDefault></activation><properties><gpg.executable>gpg</gpg.executable><gpg.passphrase>the_pass_phrase</gpg.passphrase></properties></profile></profiles>
</settings>

6.4修改pom文件的版本号

在多模块应用,版本号一般下载最顶层的pom.xml里。见<properties>的<revision>标签。

    <groupId>io.github.jforgame</groupId><artifactId>jforgame-parent</artifactId><version>${revision}</version><packaging>pom</packaging><name>jforgame-parent</name><url>https://github.com/jforgame/jforgame</url><properties><revision>1.0.0</revision></properties>

在发布的时候,如果手动挨个修改版本号超麻烦。可以使用maven的版本插件,直接在项目根pom.xml目录下,使用以下命令就能轻松设置工程等的版本。

mvn versions:set -DnewVersion="1.0.0"

6.5使用maven发布插件

使用依赖可以方便对依赖进行发布,详情见官网--> sonatype依赖部署插件

父pom文件加入插件申明 

<build><plugins><plugin><groupId>org.sonatype.central</groupId><artifactId>central-publishing-maven-plugin</artifactId><version>0.4.0</version><extensions>true</extensions><configuration><publishingServerId>central</publishingServerId><tokenAuth>true</tokenAuth></configuration></plugin><plugins>
</build>

其中publishingServerId 标签代表的serverId是配置在maven安装目录config下的setting.xml。

注意:项目采用多模块,如果不想部署全部子模块,只需要在父pom文件的<modules>标签注释掉过滤的模块即可。

在根目录下,执行

mvn deploy -DskipTests

6.6sonatype网站真正发布

执行成功之后,在sonatype网站可以看到上传的bound文件。

选择“Publish”按钮就可以完成发布啦。 

发布之后,泡杯茶,回来就可以在中央仓库,找到自己的代码了。

 6.7项目中使用

pom文件使用中央仓库(其他仓库同步仍需时间

<repositories><repository><id>central</id><name>central</name><url>https://repo1.maven.org/maven2</url><releases><enabled>true</enabled></releases></repository>
</repositories>>

引入依赖 

<dependency><groupId>io.github.jforgame</groupId><artifactId>jforgame-socket-netty</artifactId><version>1.0.0</version>
</dependency>

一行代码即可创建socket网络服务

		TcpSocketServerBuilder.newBuilder().bindingPort(HostAndPort.valueOf(ServerConfig.getInstance().getServerPort())).setMessageFactory(GameMessageFactory.getInstance()).setMessageCodec(new StructMessageCodec()).setSocketIoDispatcher(new MessageIoDispatcher(ServerScanPaths.MESSAGE_PATH)).build().start();

 

http://www.hkea.cn/news/78183/

相关文章:

  • 开发一个网站需要多少时间百度账号免费注册
  • 化妆品网站主页设计长沙关键词优化方法
  • 南阳建网站企业百度推广优化工具
  • 怎样把自己做的网页放在网站里如何做宣传推广营销
  • 七谷网络工作室重庆优化seo
  • 东莞网站建设规范软文内容
  • 项目网站建设业务分析搜索优化的培训免费咨询
  • linux做网站服务器吗关键词上首页软件
  • 西安网站建设行业动态手机营销软件
  • 做推送的网站推荐今日新闻摘抄50字
  • 想在自己的网站做支付优化公司治理结构
  • 国内一家做国外酒店团购的网站网络推广优化是干啥的
  • 手机3d动画制作软件重庆网络seo公司
  • 青海和城乡建设厅网站石家庄自动seo
  • 建站网址是多少深圳市seo上词多少钱
  • 应用网站开发创建网站花钱吗
  • 2023太原疫情优化设计答案大全
  • 创新的专业网站建设适合小学生的新闻事件
  • 政府机关备案网站百度竞价什么意思
  • 广元专业高端网站建设seo视频
  • 烟台网站建设诚信臻动传媒百度网络营销中心
  • 贵阳网站建设搜王道下拉重庆seo网络推广关键词
  • 大型 网站的建设 阶段百度官方网站下载
  • 江苏专业做网站的公司百度地图导航网页版
  • 怎么去投诉做网站的公司宁波seo外包推广软件
  • 网络营销跟做网站有什么区别线上推广如何引流
  • 如何进行网店推广seo排名优化怎样
  • 什么建站程序好收录上海网络公司seo
  • 电子商务网站建设投资预算小程序平台
  • 广州外贸营销型网站成都移动seo