diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 45b5654..5c82789 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -6,6 +6,9 @@
+
+
+
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 169fd0d..11a9487 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -9,6 +9,7 @@
+
diff --git a/app/build.gradle b/app/build.gradle
index d760c0b..0fec2ab 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -25,7 +25,7 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+ implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.core:core-ktx:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
diff --git a/build.gradle b/build.gradle
index 819d034..a04b145 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,11 +5,12 @@ buildscript {
repositories {
google()
jcenter()
-
+
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+ classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.2"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
@@ -19,10 +20,12 @@ allprojects {
repositories {
google()
jcenter()
-
+
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
+
+apply plugin: 'io.codearte.nexus-staging'
diff --git a/scripts/publish-mavencentral.gradle b/scripts/publish-mavencentral.gradle
new file mode 100644
index 0000000..2bcb75a
--- /dev/null
+++ b/scripts/publish-mavencentral.gradle
@@ -0,0 +1,122 @@
+task androidSourcesJar(type: Jar) {
+ archiveClassifier.set("sources")
+ from android.sourceSets.main.java.source
+}
+
+artifacts {
+ archives androidSourcesJar
+}
+
+apply plugin: 'maven-publish'
+apply plugin: 'signing'
+
+group = PUBLISH_GROUP_ID
+version = PUBLISH_VERSION
+
+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"
+ ext["signing.keyId"] = System.getenv('SIGNING_KEY_ID')
+ ext["signing.password"] = System.getenv('SIGNING_PASSWORD')
+ ext["signing.secretKeyRingFile"] = System.getenv('SIGNING_SECRET_KEY_RING_FILE')
+ ext["ossrhUsername"] = System.getenv('OSSRH_USERNAME')
+ ext["ossrhPassword"] = System.getenv('OSSRH_PASSWORD')
+}
+
+nexusStaging {
+ packageGroup = PUBLISH_GROUP_ID
+ stagingProfileId = '2097bad464f778'
+ username = ossrhUsername
+ password = ossrhPassword
+}
+
+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 = 'Multilevel expandable recyclerView.'
+ // If your project has a dedicated site, use its URL here
+ url = 'https://github.com/AdrianKuta/Expandable-RecyclerView'
+ licenses {
+ license {
+ name = 'Apache License 2.0'
+ url = 'https://github.com/AdrianKuta/Expandable-RecyclerView/blob/master/LICENSE'
+ }
+ }
+ developers {
+ developer {
+ name = 'Adrian Kuta'
+ email = 'adrian.kuta93@gmail.com'
+ }
+ }
+ // Version control info, if you're using GitHub, follow the format as seen here
+ scm {
+ connection = 'scm:git:github.com/AdrianKuta/Expandable-RecyclerView.git'
+ developerConnection = 'scm:git:ssh://github.com/AdrianKuta/Expandable-RecyclerView.git'
+ url = 'https://github.com/AdrianKuta/Expandable-RecyclerView/tree/master'
+ }
+ // 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 = "sonatype"
+
+ def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
+ def snapshotsRepoUrl = "https://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
+}
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index ac655c1..2299871 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,2 +1,2 @@
-include ':app'
+include ':app', ':expandable-recyclerview'
rootProject.name='Expandable RecyclerView'