Gradle 如何配置上传包到 OSSRH 仓库中

将包上传到 OSSRH 仓库中需要进行下面的一些配置就可以了。

当你知道配置参数的时候就会非常方便的上传了,配置的过程也不是很复杂。

导入插件

你需要导入 2 个插件到 Gradle 项目中。

	id 'maven'
	id 'signing'

gradle-ossrh-01

配置打包任务

如果你使用的是 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'
          }
        }
      }
    }
  }
}

在完成上面所有的配置后,直接运行就可以上传了,但是需要注意的是,根据你项目的不同,上面的配置参数也是需要一定修改的。

 

https://www.ossez.com/t/gradle-ossrh/790

posted @ 2020-12-28 01:42  huyuchengus  阅读(154)  评论(0编辑  收藏  举报