-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Publish library to Maven Central
- Loading branch information
1 parent
1edabe4
commit d739d99
Showing
3 changed files
with
125 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -60,4 +60,24 @@ dependencies { | |
|
||
// PermissionX | ||
implementation 'com.guolindev.permissionx:permissionx:1.6.1' | ||
} | ||
} | ||
|
||
ext { | ||
PUBLISH_GROUP_ID = "io.github.xayahsususu" | ||
PUBLISH_ARTIFACT_ID = 'materialyoufileexplorer' | ||
PUBLISH_DESCRIPTION = 'A file explorer with the style of Material You.' | ||
PUBLISH_GITHUB_URL = 'https://github.com/XayahSuSuSu/Android-MaterialYouFileExplorer' | ||
PUBLISH_VERSION = '1.0.0' | ||
PUBLISH_LICENSE_NAME = 'GPL-3.0' | ||
PUBLISH_LICENSE_URL = 'https://choosealicense.com/licenses/gpl-3.0/' | ||
PUBLISH_DE_URL = 'https://choosealicense.com/licenses/gpl-3.0/' | ||
PUBLISH_DEVELOPER_ID = 'Xayah' | ||
PUBLISH_DEVELOPER_NAME = 'Xayah' | ||
PUBLISH_DEVELOPER_EMAIL = '[email protected]' | ||
PUBLISH_CONNECTION = 'scm:git:github.com/XayahSuSuSu/Android-MaterialYouFileExplorer.git' | ||
PUBLISH_CONNECTION_DEVELOPER = 'scm:git:ssh://github.com/XayahSuSuSu/Android-MaterialYouFileExplorer.git' | ||
PUBLISH_CONNECTION_URL = 'https://github.com/XayahSuSuSu/Android-MaterialYouFileExplorer/tree/main' | ||
PUBLISH_MAVEN_NAME = "MaterialYouFileExplorer" | ||
|
||
} | ||
apply from: "${rootProject.projectDir}/publish-mavencentral.gradle" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
apply plugin: 'maven-publish' | ||
apply plugin: 'signing' | ||
|
||
task androidSourcesJar(type: Jar) { | ||
classifier = 'sources' | ||
from android.sourceSets.main.java.source | ||
} | ||
|
||
ext["signing.keyId"] = '' | ||
ext["signing.password"] = '' | ||
ext["signing.secretKeyRingFile"] = '' | ||
ext["ossrhUsername"] = '' | ||
ext["ossrhPassword"] = '' | ||
|
||
File secretPropsFile = project.rootProject.file('local.properties') | ||
if (secretPropsFile.exists()) { | ||
println "Found secret props file, loading props" | ||
Properties p = new Properties() | ||
p.load(new FileInputStream(secretPropsFile)) | ||
p.each { name, value -> | ||
ext[name] = value | ||
} | ||
} else { | ||
println "No props file, loading env vars" | ||
} | ||
publishing { | ||
publications { | ||
release(MavenPublication) { | ||
// The coordinates of the library, being set from variables that | ||
// we'll set up in a moment | ||
groupId PUBLISH_GROUP_ID | ||
artifactId PUBLISH_ARTIFACT_ID | ||
version PUBLISH_VERSION | ||
|
||
// Two artifacts, the `aar` and the sources | ||
artifact("$buildDir/outputs/aar/${project.getName()}-release.aar") | ||
artifact androidSourcesJar | ||
|
||
// Self-explanatory metadata for the most part | ||
pom { | ||
name = PUBLISH_ARTIFACT_ID | ||
description = PUBLISH_DESCRIPTION | ||
// If your project has a dedicated site, use its URL here | ||
url = PUBLISH_GITHUB_URL | ||
licenses { | ||
license { | ||
name = PUBLISH_LICENSE_NAME | ||
url = PUBLISH_LICENSE_URL | ||
} | ||
} | ||
developers { | ||
developer { | ||
id = PUBLISH_DEVELOPER_ID | ||
name = PUBLISH_DEVELOPER_NAME | ||
email = PUBLISH_DEVELOPER_EMAIL | ||
} | ||
} | ||
// Version control info, if you're using GitHub, follow the format as seen here | ||
scm { | ||
connection = PUBLISH_CONNECTION | ||
developerConnection = PUBLISH_CONNECTION_DEVELOPER | ||
url = PUBLISH_CONNECTION_URL | ||
} | ||
// A slightly hacky fix so that your POM will include any transitive dependencies | ||
// that your library builds upon | ||
withXml { | ||
def dependenciesNode = asNode().appendNode('dependencies') | ||
|
||
project.configurations.implementation.allDependencies.each { | ||
def dependencyNode = dependenciesNode.appendNode('dependency') | ||
dependencyNode.appendNode('groupId', it.group) | ||
dependencyNode.appendNode('artifactId', it.name) | ||
dependencyNode.appendNode('version', it.version) | ||
} | ||
} | ||
} | ||
} | ||
} | ||
repositories { | ||
// The repository to publish to, Sonatype/MavenCentral | ||
maven { | ||
// This is an arbitrary name, you may also use "mavencentral" or | ||
// any other name that's descriptive for you | ||
name = PUBLISH_MAVEN_NAME | ||
|
||
def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" | ||
def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/" | ||
// You only need this if you want to publish snapshots, otherwise just set the URL | ||
// to the release repo directly | ||
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl | ||
|
||
// The username and password we've fetched earlier | ||
credentials { | ||
username ossrhUsername | ||
password ossrhPassword | ||
} | ||
} | ||
} | ||
} | ||
signing { | ||
sign publishing.publications | ||
} |