日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

发布个人项目jar包到maven中央仓库详解

發(fā)布時間:2024/3/24 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 发布个人项目jar包到maven中央仓库详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

發(fā)布個人項(xiàng)目jar包到maven中央倉庫詳解

1、在sonatype提交發(fā)布工單(Issue)

  • sonatype是由社區(qū)支持的開源項(xiàng)目托管服務(wù)(Open Source Project Repository Hosting,簡稱OSSRH),它免費(fèi),開發(fā)者可以將自己的開源項(xiàng)目生成的jar包托管到這里

  • 當(dāng)項(xiàng)目打包部署到這里之后,它將自動同步到maven中央倉庫

  • 使用maven或者gradle構(gòu)建項(xiàng)目生成的jar發(fā)布到maven中央倉庫都需要OSSRH賬號

1.1 OSSRH賬號注冊

立即注冊

完成注冊后會跳轉(zhuǎn)到登錄界面,立即登錄即可

1.2 新建問題

新建問題實(shí)際上是發(fā)起了一個新建項(xiàng)目審核的審核工作流,會有人審核你所填寫的信息

1.3 域名認(rèn)證

  • 新建問題之后,查看問題中的活動日志

  • 在自己的域名下添加一條解析

  • 域名解析記錄值添加完成之后,回到sonatype JIRA管理平臺,點(diǎn)擊問題后的responsed按鈕

  • 如果沒有域名,也可以將Group Id填寫為github的用戶域,如: com.github.<gihub用戶名> ,填寫github用戶域,驗(yàn)證方式也不一樣,需要你在github中新建一個空的倉庫,倉庫的名稱是 OSSRH-84194

2、安裝GnuPG軟件,并生成簽名

2.1 下載安裝GnuPG

下載地址 windows直接下載 傻瓜式安裝

2.2 創(chuàng)建密鑰

我們打開windows的 CMD命令行,執(zhí)行如下命令:

# 生成密鑰 C:\Users\MC123>gpg --full-generate-key # 查看密鑰 C:\Users\MC123>gpg --list-key # 密鑰對生成完成之后,將其公鑰發(fā)往sonatype認(rèn)可的keyserver C:\Users\MC123>gpg --keyserver keyserver.ubuntu.com --send-keys 98700D239EA4BD1092B749640CC20CE1E836B7B3 # 校驗(yàn)公鑰的字符串發(fā)往服務(wù)器是否成功 C:\Users\MC123>gpg --keyserver keyserver.ubuntu.com --recv-keys 98700D239EA4BD1092B749640CC20CE1E836B7B3

3、項(xiàng)目配置及打包

此處介紹使用gradle構(gòu)建的項(xiàng)目的配置方式

3.1 添加配置信息

打開已經(jīng)安裝的GnuPG軟件Kleopatra

導(dǎo)出私鑰

復(fù)制私鑰到項(xiàng)目路徑下

創(chuàng)建全局變量配置

  • 項(xiàng)目根目錄下新建gradle.properties
# sonatype username ossrhUsername=asdf # sonatype 密碼 ossrhPassword=Sonatypeuserpwd# gpg公鑰指紋的最后8位 signing.keyId=WW1A82WW # 設(shè)置的密鑰密碼 signing.password=reeee21 # gpg私鑰的路徑 signing.secretKeyRingFile=machao (15009421862)_0xE836B7B3_SECRET.gpg
  • 編譯腳本 build.gradle
plugins {id 'java'id 'maven' // 為了產(chǎn)生pom.xml文件id 'signing' // 組件簽名插件 }// 項(xiàng)目組和版本 group = 'top.mstudy' archivesBaseName = "commons-tool" version = "0.0.2"apply plugin: 'maven-publish'// 指定所使用的的倉庫 repositories {mavenLocal()mavenCentral()maven {url = uri('http://maven.aliyun.com/nexus/content/groups/public/')} }/*** gradle工程所有的jar包的坐標(biāo)都在dependencies屬性內(nèi)放置* 每一個jar包的坐標(biāo)都有三個基本元素組成:group,name,version* testCompile表示該jar包在測試的時候起作用,該屬性為jar包的作用域* 我們在gradle里面添加坐標(biāo)的時候都要帶上jar包的作用域*/ dependencies {implementation 'org.springframework.boot:spring-boot-starter-web:2.4.13'...... }sourceCompatibility = 1.8 targetCompatibility = 1.8// java的版本和編碼集等信息,這里記得和idea中配置的一樣,都使用你自己的java版本 compileJava {sourceCompatibility = 1.8targetCompatibility = 1.8[compileJava]*.options*.encoding = 'UTF-8' }compileTestJava {sourceCompatibility = 1.8targetCompatibility = 1.8[compileTestJava]*.options*.encoding = 'UTF-8' }test {exclude '**/*.class' }publishing {publications {maven(MavenPublication) {from(components.java)}} }tasks.withType(JavaCompile) {options.encoding = 'UTF-8' } //對于典型的 Java 項(xiàng)目,您可以添加一個javadocJar以及一個 sourcesJar任務(wù) task javadocJar(type: Jar) {classifier = 'javadoc'from javadoc }task sourcesJar(type: Jar) {classifier = 'sources'from sourceSets.main.allSource }// javadoc 配置,這里是自定義了 java doc 的一些配置 javadoc {description = "Generates project-level javadoc for use in -javadoc jar"options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTEDoptions.author = trueoptions.version = trueoptions.header = project.nameoptions.addStringOption('Xdoclint:none', '-quiet')// suppress warnings due to cross-module @see and @link references;// note that global 'api' task does display all warnings.logging.captureStandardError LogLevel.INFOlogging.captureStandardOutput LogLevel.INFO // suppress "## warnings" messageoptions.encoding = "UTF-8" //編碼一定要配置否則直接出錯options.charSet = 'UTF-8' }// 并將它們與項(xiàng)目 jar 本身一起連接到 artifacts 集合中: artifacts {archives javadocJar, sourcesJar }// 將構(gòu)建的包簽名 signing {sign configurations.archives }//元數(shù)據(jù)定義和上傳? uploadArchives {repositories {mavenDeployer {beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }repository(url: "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") {authentication(userName: ossrhUsername, password: ossrhPassword)}snapshotRepository(url: "https://s01.oss.sonatype.org/content/repositories/snapshots/") {authentication(userName: ossrhUsername, password: ossrhPassword)}pom.project {name 'Example Application'packaging 'jar'// optionally artifactId can be defined heredescription "A application used as an example on how to set up pushing its components to the Central Repository."url 'http://www.example.com/example-application'scm {connection 'scm:svn:http://foo.googlecode.com/svn/trunk/'developerConnection 'scm:svn:https://foo.googlecode.com/svn/trunk/'url 'http://foo.googlecode.com/svn/trunk/'}licenses {license {name 'The Apache License, Version 2.0'url 'http://www.apache.org/licenses/LICENSE-2.0.txt'}}developers {developer {id 'manfred'name 'Manfred Moser'email 'manfred@sonatype.com'}}}}} }allprojects {tasks.withType(Javadoc).all { enabled = false } }description = '項(xiàng)目描述'

3.2 打包上傳

輸出上面的日志表示上傳成功

4、CLOSE&RELEASE

使用sonatype的賬號和密碼進(jìn)入到 nexus repository manager

4.1 close倉庫

close實(shí)際是檢測倉庫的一個過程,檢測沒問題才可以發(fā)布

4.2 release倉庫

release就是將倉庫發(fā)布到maven中央倉庫,這也是我們要做的最后一步

release之后我們會收到一封report郵件

此時我們已經(jīng)可以在中央倉庫搜索到我們提交的jar包了

release之后,需要四個小時左右才能在 search.maven.org 上找到你的jar包,如果需要在 mvnrepository.com 上找到,則需要更長的時間

5、項(xiàng)目中驗(yàn)證結(jié)果

maven中央倉庫同步到國內(nèi)的源是需要時間的,要保證項(xiàng)目里maven中央倉庫的優(yōu)先級在上面

repositories {mavenLocal() maven {url = uri('https://repo1.maven.org/maven2/')}maven {url = uri('https://maven.aliyun.com/repository/public')} }

引入依賴

dependencies {implementation 'top.mstudy:commons-tool:0.0.2' }

參考網(wǎng)址:

手把手教你提交Jar包到Maven公共倉庫

個人開源項(xiàng)目如何上傳maven中央倉庫

gradle發(fā)布jar包到maven倉庫遇到的問題解決

gradle發(fā)布代碼到maven中央倉庫

gradle跳過javadoc的檢查

解決idea使用gradle在打成jar包時出現(xiàn)找不到符號的問題

上傳自己的jar包到maven中央倉庫的快速操作方法

Maven 如何引入第三方本地jar包

總結(jié)

以上是生活随笔為你收集整理的发布个人项目jar包到maven中央仓库详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。