热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

发布自己的jar到MavenRepository公服上

前段时间自己写了一个简易的Java版爬虫框架。如果想把这个框架完善还是需要大家的力量,如果每次使用都要从Gihub上下载源码岂不是很麻烦?因为自己的项目

前段时间自己写了一个简易的Java版爬虫框架。如果想把这个框架完善还是需要大家的力量,如果每次使用都要从Gihub上下载源码岂不是很麻烦?因为自己的项目用的是maven来管理jar包,那么就试试把这个爬虫框架放到公服仓库上去吧!


注册Sonatype账号

使用过Jira的用户就很熟悉了,事务与项目跟踪软件。注册好之后也可以用这个账号登陆maven公服仓库https://oss.sonatype.org/

注意:Username 一定不要是中文,一定要是英文!!!


创建一个Jira

Project: Open Source Project Repository Hosting (OSSRH)

Issue Type: New Project

下面是我项目的配置
WX20180708-221640@2x.png
注意Group Id 要和项目中pom配置的一样,一定要是域名的反写,这里推荐使用github的域名(如果自己没有长期维护的域名),自己的域名可能会过期github可是不能随随便便的过期吧~

Project URL 就是你项目再Github上的地址;

SCM url 就是项目clone地址

ok,创建好之后就等待老外回复吧。因为有时差,所以一般他们晚上十点钟以后才能去审查,所以第一次配置的的时候一定要准确,不然改一次要等一天哦~~~

正确的审核反馈如下:

WX20180708-222208@2x.png


修改项目Pom

这个也是比较重要的
一定要有以下结构

<description>A Simple Java Crawler Frameworkdescription>
<licenses><license><name>The Apache Software License, Version 2.0name><url>http://www.apache.org/licenses/LICENSE-2.0.txturl>license>
licenses>
<developers><developer><name>wangxcname><email>vector4wang&#64;qq.comemail>developer>
developers>
<scm><connection>scm:git:https://github.com/vector4wang/vw-crawler.gitconnection><developerConnection>scm:git:https://github.com/vector4wang/vw-crawler.gitdeveloperConnection><url>https://github.com/vector4wang/vw-crawlerurl>
scm>

这是Nexus Rules规定的&#xff0c;不然会出错&#xff01;

然后就是构建插件与配置

<distributionManagement><snapshotRepository><id>ossrhid><url>https://oss.sonatype.org/content/repositories/snapshots/url>snapshotRepository><repository><id>ossrhid><url>https://oss.sonatype.org/service/local/staging/deploy/maven2/url>repository>
distributionManagement><build><plugins><plugin><groupId>org.sonatype.pluginsgroupId><artifactId>nexus-staging-maven-pluginartifactId><version>1.6.7version><extensions>trueextensions><configuration><serverId>ossrhserverId><nexusUrl>https://oss.sonatype.org/nexusUrl><autoReleaseAfterClose>trueautoReleaseAfterClose>configuration>plugin><plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-source-pluginartifactId><version>2.2.1version><executions><execution><id>attach-sourcesid><goals><goal>jar-no-forkgoal>goals>execution>executions>plugin><plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-javadoc-pluginartifactId><version>2.9.1version><executions><execution><id>attach-javadocsid><goals><goal>jargoal>goals>execution>executions>plugin><plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-gpg-pluginartifactId><version>1.5version><executions><execution><id>sign-artifactsid><phase>verifyphase><goals><goal>signgoal>goals>execution>executions>plugin><plugin><artifactId>maven-compiler-pluginartifactId><version>3.5.1version><configuration><source>${java.version}source><target>${java.version}target>configuration>plugin>plugins>
build>

distributionManagement中对应MavenHome中的setting的文件配置&#xff0c;如下

<servers><server><id>ossrhid><username>UserNameusername><password>Passwordpassword>server>
servers>

用户名和密码就是你注册sonatype时的用户名和密码&#xff0c;id要对应pom里的id

nexus-staging-maven-plugin 这个插件是在成功发布到公服上的时候不需要手动去改变status(close,有的文章介绍说要手动关闭)

maven-javadoc-plugin 这个也比较重要&#xff0c;生成javadoc&#xff0c;要求代码里如果要使用注释&#xff0c;就要按照规范去注释&#xff0c;这个大家可以查找相关内容了解下&#xff0c;你也可以在deploy的时候按照提示去修改代码

maven-gpg-plugin 这个是用来生成私钥&#xff0c;下面会用到

ps&#xff1a;我的电脑是mac&#xff0c;在打包的时候报错&#xff0c;说找不到java home&#xff0c;在properti中加上下面配置就行了

<javadocExecutable>${java.home}/../bin/javadocjavadocExecutable>

安装gpg

windows用户在gpg4win这里下载&#xff0c;mac可以下载GPG_suite
因为都是图形界面&#xff0c;所以直接创建新的秘钥
需要输入用户名、邮箱和密码&#xff0c;一定要记住这个密码

之后需要把此秘钥发布到公钥服务器上(因为是图形工具&#xff0c;很简单&#xff0c;如果是命令行&#xff0c;还请在网上找一下)


发布

一切配置好之后&#xff0c;可以使用mvn clean deploy看一下结果&#xff0c;如果想发布release版本的需要把version中的snapshot去掉即可~

发布的时候提示你输入密码&#xff0c;这个密码就是上一节中你输入的密码&#xff01;

之后就可以在仓库中找到自己发布的jar包了&#xff0c;发布release之后&#xff0c;要回到jira上接着评论告知已经发布&#xff0c;可以关闭掉这个jira了&#xff01;&#xff01;&#xff01;


后记

最大的问题就是时差问题&#xff0c;因为你遇到的问题可能需要老外那边协助&#xff0c;比如重置一些权限或者其他稀奇古怪的问题&#xff0c;这样一等就是一天。所以要准备十点以后&#xff0c;一旦jira有回复&#xff0c;立马去修改去尝试&#xff0c;然后再告知老外&#xff0c;那是老外可能会立即做出回应&#xff0c;就不需要等一天了~~~

另外后面会把爬虫框架vw-crawler的使用说明补充出来&#xff0c;希望大家能多多捧场~~~

CSDN&#xff1a;http://blog.csdn.net/qqhjqs?viewmode&#61;list

博客&#xff1a;http://blog.wangxc.club/

简书&#xff1a;https://www.jianshu.com/u/223a1314e818

Github:https://github.com/vector4wang

Gitee:https://gitee.com/backwxc

如果感觉有帮助的话&#xff0c;点个赞哦~


推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • Jmeter对RabbitMQ压力测试
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Jmeter对RabbitMQ压力测试相关的知识,希望对你有一定的参考价值。Jm ... [详细]
  • struts2重点——ValueStack和OGNL
    一、值栈(ValueStack)1.实现类:OGNLValueStack2.对象栈:CompoundRoot( ... [详细]
  • 作为Spring的高强度使用者,没理由不对Spring的发展历程感到好奇吧?想知道Spring的作者,Spring是怎样一步一步的发展到今 ... [详细]
  • 升级到grails2.3.2之后,运行时报如下的异常:ExceptioninthreadmainError|ForkedGrailsVMexitedwitherrorjava. ... [详细]
  • 【Maven】POM标签大全详解POM(ProjectObjectModel,项目对象模型)是M ... [详细]
  • 软件测试人员必备的60个测试工具清单,建议收藏一波!
    据统计,中国软件外包市场的潜力和机会已远远超过软件王国印度,不过由于软件人才的严重不足致使我国软件发展遭遇“瓶颈”。国家为了大力培养软件人才࿰ ... [详细]
author-avatar
伊人怀想
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有