Skip to main content

Publish an Android library to Maven with AAR ,android studio maven aar nexus 上传aar android上传aar到Maven Central 2022年最新最全

1. Github

1.1 注册github

点击下面链接进行注册

2. 注册sonatype账号

2.1 注册


输入Email,Full name,Username,Password,输入验证码,最后点击Sign up就可以注册了。
required



2.2 登录




2.3 新建group id

登录之后点击新建



按照下图中的步骤一步一步来即可,最后别忘记点击新建。

2.4 github新建相关仓库


新建完成之后我们需要在github新建一个仓库,证明你是这个github的使用者(例如这个是我的 https://github.com/996dev)


等待审核通过之后,我们就可以往 mavenCentral 上传aar或者jar包了

3. GPG

3.1 下载软件


下载对应系统的文件



下载完成之后点击安装,直到完成。


3.2 生成密钥

创建密钥命令,在创建的时候一定要记住设置的密码,后面要用的
gpg --full-generate-key
导出私钥,这个后面会用的到,使用下面命令进行导出
gpg --export-secret-keys -o secring.gpg

3.3 上传公钥到服务器

上传到这个三个地方keyserver.ubuntu.com,pgp.mit.edu,keys.openpgp.org

gpg --keyserver hkp://xxxx.xxx --send-keys YOUR KEY ID

3.3.1上传

使用下面命令进行上传

gpg --keyserver keyserver.ubuntu.com --send-keys YOUR KEY ID
gpg --keyserver pgp.mit.edu --send-keys YOUR KEY ID
gpg --keyserver keys.openpgp.org --send-keys YOUR KEY ID

keys.openpgp.org 命令行出问题使用下面的网页直接上传
https://keys.openpgp.org/uploa

3.3.2 验证上传是否成功

使用下面的命令进行验证是否上传成功
gpg --keyserver keyserver.ubuntu.com --recv-keys YOUR KEY ID
gpg --keyserver keys.openpgp.org --recv-keys YOUR KEY ID
gpg --keyserver pgp.mit.edu --recv-keys YOUR KEY ID


4. android gradle

4.1 publish-mavencentral.gradle 

新建publish-mavencentral.gradle文件


apply plugin: 'com.android.library'

apply plugin: 'maven-publish'
apply plugin: 'signing'

//生成文档注释
task androidJavadocs(type: Javadoc) {
    failOnError = false
    source = android.sourceSets.main.java.srcDirs
    ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
    classpath += files(ext.androidJar)
}
//将文档打包成jar
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
    archiveClassifier.set('javadoc')
    from androidJavadocs.destinationDir
}
//将源码打包
task androidSourcesJar(type: Jar) {
    archiveClassifier.set('sources')
    from android.sourceSets.main.java.srcDirs
}


artifacts {
    archives androidSourcesJar
    archives androidJavadocsJar
}


//加载资源
Properties properties = new Properties()
InputStream inputStream = project.rootProject.file('gradle.properties').newDataInputStream();
properties.load(inputStream)

// Because the components are created only during the afterEvaluate phase, you must
// configure your publications using the afterEvaluate() lifecycle method.
afterEvaluate {
    publishing {
        publications {
            // Creates a Maven publication called "release".
            release(MavenPublication) {
                // Applies the component for the release build variant.
                from components.release

                // You can then customize attributes of the publication as shown below.
                groupId = properties.getProperty('GROUP_ID')
                artifactId = project.artifactId
                version = project.artifactVersion
                // Adds Javadocs and Sources as separate jars.
//                artifact file("$buildDir/outputs/aar/${project.name}-release.aar")
                artifact androidSourcesJar
                artifact androidJavadocsJar

                pom {
                    name = project.artifactName
                    packaging = 'aar'
                    description = project.artifactDescription
                    url = project.githubUrl

                    licenses {
                        license {
                            name = 'The Apache License, Version 2.0'
                            url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        }
                    }

                    developers {
                        developer {
                            id = '996dev'
                            name = '996dev'
                            email = '996dev@996.dev'
                        }
                    }

                    scm {
                        url = project.githubUrl
                        connection = "scm:git@${project.githubHttps}"
                        developerConnection = "scm:${project.githubSSH}"
                    }

                }
            }
        }

        repositories {
            maven {
                def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
                def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
                url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
                credentials {
                    username = properties.getProperty('ossrhUsername')
                    password = properties.getProperty('ossrhPassword')
                }
            }
        }
    }

    signing {
        sign publishing.publications.release
    }
}



4.2 moudle中使用上传gradle



apply from: "${rootProject.projectDir}/publish-mavencentral.gradle"

ext {
    artifactId = "toast"
    artifactName = 'toast'
    artifactDescription = "androidx toast"
    artifactVersion = "0.0.1"
    githubUrl = "https://github.com/996dev/toast"
    githubHttps = "https://github.com/996dev/toast.git"
    githubSSH = "git@github.com:996dev/toast.git"
}


5. 配置账号密码

在gradle.propertis 填写下面的信息


signing.keyId=后八位
signing.password=刚刚生成的密钥时输入的密码
signing.secretKeyRingFile=D\:\\Key\\secring.gpg 上面到处私钥

ossrhUsername=sonatype账号
ossrhPassword=sonatype密码

GROUP_ID=io.github.996dev

6.上传aar

点击publishing中的task进行上传



7. maven center处理

打开下面的网址
https://s01.oss.sonatype.org/#welcome

登录账号


处理刚刚上传的aar




8.查看验证是否成功

在下面网址中搜索看看有没有上传的aar
https://search.maven.org



Popular posts from this blog

Ubuntu 18.04 升级 Cmake

千万不要卸载删除 ubuntu 原有的cmake,否则之前经过原有cmake编译过的文件将也会被删除。 千万不要使用下面这句命令删除原有的 cmake ! sudo apt-get autoremove cmake 下载地址  https://github.com/Kitware/CMake/releases 下载 wget https://github.com/Kitware/CMake/releases/download/v3.24.0/cmake-3.24.0-linux-x86_64.tar.gz 解压 tar -zxvf cmake-3.24.0-linux-x86_64.tar.gz 移动 sudo mv cmake-3.24.0-linux-x86_64 /opt/cmake-3.24.0 建立软链 sudo ln -sf /opt/cmake-3.24.0/bin/* /usr/bin/  查看当前cmake版本 cmake --version 环境变量设置 # 进入~/.bashrc sudo gedit ~/.bashrc # 输入以下内容 export  PATH=$PATH:/opt/cmake-3.24.0/bin 生效环境变量 source ~/.bashrc 

虚拟币交易平台 viabtc_exchange_server ubuntu 16.04 安装步骤

########1############ 下载宝塔: wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh Congratulations! Install succeeded! ================================================================== Bt-Panel: http://155.138.211.245:8888/37dfffff username: dbdiyxmj password: f2ec3b83 Warning: If you cannot access the panel, release the following port (8888|888|80|443|20|21) in the security group ================================================================== sudo apt update ########2############ sudo apt install libev-dev libjansson-dev libmpdec-dev libmysqlclient-dev libcurl4-gnutls-dev libldap2-dev libgss-dev librtmp-dev libsasl2-dev git default-jdk openssl libssl-dev mysql-server 数据库root 密码:root ########3############ wget http...

《股票大作手回忆录》杰西·利弗莫尔十大交易心法

  1、认清大势 第5章原文:赚大钱不能靠个股的波动,而要靠大盘走势;不能靠解读盘面,而要靠预判整个市场和市场趋势。 书中写了利弗莫尔赚大钱的几次关键机会:1907年先做空市场,底部时反手做多,赚取数百万美元;1915-1916年牛市做多,高位时做空12只股票,又赚回数百万美元;还有经典的1929年,做空赚了1亿美元。 而1911到1914年期间,市场没有赚钱机会,利弗莫尔说他一分钱都没有赚到。 2、交易心理是关键 第12章 原文 :当一个人急于让市场满足自己的需求时,他会怎么做?他是在赌博,所以他因此承受的风险远高于他理智时的操作。 1908年,利弗莫尔做棉花期货大亏,从几百万身家亏到只有几十万,为了扳平回本,他最后连几十万都全部亏完,还背了一身债,所以说财不入急门,赌性要不得。 第14章 原 文 :只要我欠着钱,我就会一直担心,我就无法顺利地东山再起,这一点明白无误,我告诉自己:我必须破产。 1915年,利弗莫尔欠了100多万美元的债务,但因为债务问题导致心理问题,无法在市场正常发挥,所以不得已破产来减轻债务,以轻装上阵。所以焦虑和压力的心理,是交易的大敌。 3、趋势为王 第10章 原 文 :价格和其他东西一样,沿着最小阻力方向运动,所有你需要做的就是观察行情走向,确定市场阻力位,一旦确定之后时刻准备好沿着最小 阻力线 交易。 利弗莫尔所说的最小阻力线,是指价格突破盘整区间的上下边,即突破了阻力位,表明行情的趋势已经走出来,可以跟随突破方向进行交易。 4、耐心等待交易机会 第14章 原 文 :六周的耐心等待之后,最终我还是用理智战胜了贪婪和欲望。 利弗莫尔买伯利恒钢铁的时候,只有一次赊来的交易机会,可以买500股,为了保证万无一失,他耐心等待了6周,等到这个股票整数突破100点的时候买入,打赢了他交易历史上最著名的翻身仗。 5、独立分析判断,拒绝小消息 第8章 原 文 :我变得比任何时候都更加独立,不会去听信别人的小道消息和评论,也不会理会其他人的意见、推测和怀疑。 利弗莫尔经历过多次失败,都是因为失去了独立思考和轻信他人的缘故。1907年轻信好友的干预损失4万美元,1908年又被洗脑做多棉花而遭遇惨败。所以他学会了反其道而行之,反向利用小道消息进行操作,均取得了盈利。 6、浮盈加仓 第7章 原文 :初次交易之后,除非能够显示你可以盈利,否则不要进行第二...