OSSRH to Central Portal (with jreleaser)

Created Diff never expires
10 刪除
總計
刪除
單詞
總計
刪除
要繼續使用此功能,請升級到
Diffchecker logo
Diffchecker Pro
79
42 新增
總計
新增
單詞
總計
新增
要繼續使用此功能,請升級到
Diffchecker logo
Diffchecker Pro
111
plugins {
plugins {
id 'java-library'
id 'java-library'
id 'signing'
id 'signing'
id 'maven-publish'
id 'maven-publish'
id 'org.jreleaser' version '1.17.0'
}
}


repositories {
repositories {
mavenCentral()
mavenCentral()
}
}


task sourcesJar(type: Jar) {
task sourcesJar(type: Jar) {
archiveClassifier.set('sources')
archiveClassifier.set('sources')
from sourceSets.main.allSource
from sourceSets.main.allSource
}
}


task javadocJar(type: Jar) {
task javadocJar(type: Jar) {
archiveClassifier.set('javadoc')
archiveClassifier.set('javadoc')
from tasks.javadoc.destinationDir
from tasks.javadoc.destinationDir
}
}


publishing {
publishing {
publications {
publications {
mavenJava(MavenPublication) {
maven(MavenPublication) {
from components.java
from components.java
artifact sourcesJar
artifact sourcesJar
artifact javadocJar
artifact javadocJar


groupId = 'com.example'
groupId = 'com.example'
version = '1.0.0'
version = '1.0.0'
artifactId = 'sample-package'
artifactId = 'sample-package'


pom {
pom {
name.set('Sample package')
name.set('Sample package')
description.set('This is sample.')
description.set('This is sample.')
url.set('https://github.com/your-github-name/repository-name')
url.set('https://github.com/your-github-name/repository-name')


licenses {
licenses {
license {
license {
name.set('MIT License')
name.set('MIT License')
url.set('https://opensource.org/licenses/MIT')
url.set('https://opensource.org/licenses/MIT')
}
}
}
}


developers {
developers {
developer {
developer {
id.set('Your id')
id.set('Your id')
name.set('Your name')
name.set('Your name')
email.set('???@???.???')
email.set('???@???.???')
}
}
}
}


scm {
scm {
connection.set('scm:git:git://github.com/your-github-name/repository-name.git')
connection.set('scm:git:git://github.com/your-github-name/repository-name.git')
developerConnection.set('scm:git:ssh://github.com/your-github-name/repository-name.git')
developerConnection.set('scm:git:ssh://github.com/your-github-name/repository-name.git')
url.set('https://github.com/your-github-name/repository-name')
url.set('https://github.com/your-github-name/repository-name')
}
}
}
}
}
}
}
}


repositories {
repositories {
maven {
maven {
name 'OSSRH'
url = layout.buildDirectory.dir('staging-deploy')
url uri('https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/')
credentials {
username = project.findProperty('ossrhUsername')?.toString()
password = project.findProperty('ossrhPassword')?.toString()
}
}
}
}
}
}
}


def githubToken = project.findProperty('githubToken')

def gpgPublicKey = project.findProperty('gpgPublicKey')
def gpgSecretKey = project.findProperty('gpgSecretKey')
def gpgSecretKey = project.findProperty('gpgSecretKey')
def gpgPassphrase = project.findProperty('gpgPassphrase')
def gpgPassphrase = project.findProperty('gpgPassphrase')


signing {
def centralUsername = project.findProperty('centralUsername')
useInMemoryPgpKeys(gpgSecretKey, gpgPassphrase)
def centralPassword = project.findProperty('centralPassword')
sign publishing.publications.mavenJava

jreleaser {
project {
gitRootSearch = true
}

release {
github {
token.set(githubToken)
}
}

signing {
active = 'ALWAYS'
armored = true
mode = 'MEMORY'
publicKey.set(gpgPublicKey)
secretKey.set(gpgSecretKey)
passphrase.set(gpgPassphrase)
}

deploy {
maven {
mavenCentral {
sonatype {
active = 'ALWAYS'
url = 'https://central.sonatype.com/api/v1/publisher'
username.set(centralUsername)
password.set(centralPassword)
stagingRepository('build/staging-deploy')
}
}
}
}
}
}