用 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
将部署发布到中央存储库
部署完成后,您可以继续手动发布组件。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于