diff --git a/MaterialYouFileExplorer/build.gradle b/MaterialYouFileExplorer/build.gradle index 4a61a3d..095bad2 100644 --- a/MaterialYouFileExplorer/build.gradle +++ b/MaterialYouFileExplorer/build.gradle @@ -60,4 +60,24 @@ dependencies { // PermissionX implementation 'com.guolindev.permissionx:permissionx:1.6.1' -} \ No newline at end of file +} + +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 = 'zds1249475336@gmail.com' + 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" \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 4094cda..4fb8039 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -46,5 +46,6 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' - implementation project(path: ':MaterialYouFileExplorer') + // implementation project(path: ':MaterialYouFileExplorer') + implementation 'io.github.xayahsususu:materialyoufileexplorer:1.0.0' } \ No newline at end of file diff --git a/publish-mavencentral.gradle b/publish-mavencentral.gradle new file mode 100644 index 0000000..3325f12 --- /dev/null +++ b/publish-mavencentral.gradle @@ -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 +}