Gradle 打包上传中央仓库

7 篇文章 1 订阅
3 篇文章 0 订阅

打包步骤

生成gpg密钥

gpg --full-generate-key
gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

请选择您要使用的密钥类型:
   (1) RSA 和 RSA (默认)
   (2) DSA 和 Elgamal
   (3) DSA(仅用于签名)
   (4) RSA(仅用于签名)
您的选择是? 4
RSA 密钥的长度应在 1024 位与 4096 位之间。
您想要使用的密钥长度?(2048) 
请求的密钥长度是 2048 位                
请设定这个密钥的有效期限。
         0 = 密钥永不过期
      <n>  = 密钥在 n 天后过期
      <n>w = 密钥在 n 周后过期
      <n>m = 密钥在 n 月后过期
      <n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 0
密钥永远不会过期                
这些内容正确吗? (y/N) y
                                
GnuPG 需要构建用户标识以辨认您的密钥。

真实姓名: dounine
电子邮件地址: xxxxx@gamil.com
注释: for lake                         
您选定了此用户标识:
    “dounine (for lake) <xxxxx@gamil.com>”

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)? O
我们需要生成大量的随机字节。在质数生成期间做些其他操作(敲打键盘                                  
、移动鼠标、读写硬盘之类的)将会是一个不错的主意;这会让随机数
发生器有更好的机会获得足够的熵。
gpg: 密钥 87FC6DD218033D5F 被标记为绝对信任
gpg: 吊销证书已被存储为‘/Users/huanghuanlai/.gnupg/openpgp-revocs.d/9C70D54B941D7831E4B97C8387FC6DD218033D5F.rev’
公钥和私钥已经生成并被签名。

请注意这个密钥不能用于加密。您可能想要使用“--edit-key”命令来
生成一个用于此用途的子密钥。
pub   rsa2048 2019-01-07 [SC]
      9C70D54B941D7831E4B97C8387FC6DD218033D5F
uid                      dounine (for lake) <xxxxx@gamil.com>

上传公钥到两台服务器上
keys.gnupg.net 与 keyserver.ubuntu.com

gpg --keyserver keys.gnupg.net --send-keys 9C70D54B941D7831E4B97C8387FC6DD218033D5F
gpg: 正在发送密钥 87FC6DD218033D5F 到 hkp://hkps.pool.sks-keyservers.net
gpg: 发送至公钥服务器失败:No route to host
gpg: 发送至公钥服务器失败:No route to host
# 不要慌,使用IP地扯即可 ping keys.gnupg.net 得到 51.38.91.189 地扯
gpg --keyserver 51.38.91.189 --send-keys 9C70D54B941D7831E4B97C8387FC6DD218033D5F
gpg --keyserver keyserver.ubuntu.com --send-keys 9C70D54B941D7831E4B97C8387FC6DD218033D5F

~/.gradle/gradle.properties 配置
pub 是一个40位的密钥,如果你把它复制上传肯定会报这么一个错

 The key ID must be in a valid form ...

keyId 其实就是pub最后面8位 或者使用gpg --list-keys --keyid-format short查看

signing.keyId=18033D5F
signing.password=gpg设置的密码
signing.secretKeyRingFile=/Users/lake/.gnupg/secring.gpg

NEXUS_USERNAME=NEXUS帐号
NEXUS_PASSWORD=NEXUS密码
NEXUS_EMAIL=email

build.gradle 演示案例配置文件

group = 'com.dounine.scala'
version = '1.0.0'
apply plugin: 'signing'
apply plugin: 'scala'
apply plugin: 'maven-publish'
sourceCompatibility = 1.8
task sourcesJar(type: Jar) {
	from sourceSets.main.allJava
	classifier = 'sources'
}
task javadocJar(type: Jar) {
	from javadoc
	classifier = 'javadoc'
}
publishing {
	publications {
		mavenJava(MavenPublication) {
			artifactId = 'scala-filebeat'
			from components.java
			artifact sourcesJar
			artifact javadocJar
			pom {
				name = 'scala-filebeat'
				description = 'scala version filebeat'
				url = 'https://github.com/dounine/scala-filebeat'
				licenses {
					license {
						name = 'The Apache License, Version 2.0'
						url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
					}
				}
				developers {
					developer {
						id = 'lake'
						name = 'lake'
						email = 'xxxxx@gmail.com'
					}
				}
				scm {
					connection = 'scm:git:git://github.com/dounine/scala-filebeat.git'
					developerConnection = 'scm:git:ssh://github.com/dounine/scala-filebeat.git'
					url = 'https://github.com/dounine/scala-filebeat'
				}
			}
		}
	}
	repositories {
		maven {
			def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
			def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
			url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
			credentials {
				username NEXUS_USERNAME
				password NEXUS_PASSWORD
			}
		}
	}
}
jar {
	manifest {
		attributes 'Implementation-Title': 'ScalaFilebeat',
				'Implementation-Version': version
	}
}
signing {
	sign publishing.publications.mavenJava
}
repositories {
	mavenLocal()
	mavenCentral()
}
dependencies {
	compile 'org.scala-lang:scala-library:2.11.12'
	compile group: 'commons-io', name: 'commons-io', version: '2.6'
}

打包

gradle clean build -xtest -Ppro

发布到NEXUS仓库

gradle publish

最后一步

登录 NEXUS仓库
找到自己上传的项目,点击close

image.png

等待close状态全部通过即可发布Release版本
image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值