用 Gradle 部署到 OSSRH - 介绍
就像 Gradle 可以 Central Repository 中的 jar 一样,它也可以配置为发布到 OSSRH,一样简单。
元数据和签名
为了使用 Gradle 将您的组件部署到 OSSRH,您必须满足 pom.xml
中所有的东西,并提供所需的已签名组件。
MavenGradle 的插件可以处理元数据,生成所需的 pom.xml
文件,并负责将构建输出部署到存储库。signing 插件允许您获取由标准 Gradle 任务创建的组件,并签名:
apply plugin: 'maven'
apply plugin: 'signing'
Jar 文件
对于典型的 Java 项目,您可以添加 javadocJar
以及 sourcesJar
任务
task javadocJar(type: Jar) {
classifier = 'javadoc'
from javadoc
}
task sourcesJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}
并将它们与项目 jar 本身一起挂接到 artifacts 集合中:
artifacts {
archives javadocJar, sourcesJar
}
签署文物
已定义的工件可以使用签名
signing {
sign configurations.archives
}
元数据定义和上传
为了准备实际上传,您必须在 maven 插件的帮助下定义所有元数据。组和版本在顶层项目中设置,而 artifactId 为 archiveTask 配置。
group = "com.example.applications"
archivesBaseName = "example-application"
version = "1.4.7"
生成的 pom 文件必须进行签名,然后必须上传所有已签名的工件。所有这些都可以配置为配置的一部分 uploadArchives
。
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'
}
}
}
}
}
}
您的项目的依赖项将被插入到生成的项目中。
证书
用于签名和上传的凭证可以存储在 gradle.properties
用户主目录中的文件中。内容将如下所示
signing.keyId=YourKeyId
signing.password=YourPublicKeyPassword
signing.secretKeyRingFile=PathToYourKeyRingFile
ossrhUsername=your-jira-id
ossrhPassword=your-jira-password
部署
有了这个配置,就可以开始部署
gradle uploadArchives
将部署发布到中央存储库
部署完成后,您可以继续手动发布组件。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于