Gradle 如何配置上传包到 OSSRH 仓库中
将包上传到 OSSRH 仓库中需要进行下面的一些配置就可以了。
当你知道配置参数的时候就会非常方便的上传了,配置的过程也不是很复杂。
导入插件
你需要导入 2 个插件到 Gradle 项目中。
id 'maven'
id 'signing'
配置打包任务
如果你使用的是 Java 项目的话,你需要将源代码和文档都进行打包。
添加下面 2 个打包任务
task javadocJar(type: Jar) {
classifier = 'javadoc'
from javadoc
}
task sourcesJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}
然后将程序和代码进行压缩成一个归档文件。
使用下面的命令进行归档。
artifacts {
archives javadocJar, sourcesJar
}
签名
要上传到中央仓库,签名是必须的。
添加下面的任务进行签名
signing {
sign configurations.archives
}
同时,你还需要在 C:\Users\yhu.gradle 文件夹中创建一个 gradle.properties 文件。
根据你的操作系统不同和用户不同,上面的路径需要自行调整下。
内容如下。
signing.keyId=YourKeyId
signing.password=YourPublicKeyPassword
signing.secretKeyRingFile=PathToYourKeyRingFile
ossrhUsername=your-jira-id
ossrhPassword=your-jira-password
根据你参数的不同来进行调整。
有关需要调整的参数和生成的秘钥等,请参考:Gradle 签名的配置文件 gradle.properties 文章中的内容。
设置 Metadata 和上传
在你的 Gradle 的构建文件中,定义:
group = "com.example.applications"
archivesBaseName = "example-application"
version = "1.4.7"
上面的配置就等于是 Maven POM 文件的包定义了。
然后添加上传的 Task 到你的 gradle 文件中。
uploadArchives {
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
authentication(userName: ossrhUsername, password: ossrhPassword)
}
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
authentication(userName: ossrhUsername, password: ossrhPassword)
}
pom.project {
name 'Example Application'
packaging 'jar'
// optionally artifactId can be defined here
description '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'
}
}
}
}
}
}
在完成上面所有的配置后,直接运行就可以上传了,但是需要注意的是,根据你项目的不同,上面的配置参数也是需要一定修改的。