mirror of
				https://github.com/AdrianKuta/Expandable-RecyclerView.git
				synced 2025-10-31 00:43:39 +01:00 
			
		
		
		
	Merge pull request #5 from AdrianKuta/feat/4-upgrade_to_build_gradle_7.0.2
feat: Upgrade to build gradle 7.0.2
This commit is contained in:
		
							
								
								
									
										38
									
								
								.github/workflows/publish.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								.github/workflows/publish.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| name: Publish | ||||
|  | ||||
| on: | ||||
|   release: | ||||
|     # We'll run this workflow when a new GitHub release is created | ||||
|     types: [released] | ||||
|  | ||||
| jobs: | ||||
|   publish: | ||||
|     name: Release build and publish | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Check out code | ||||
|         uses: actions/checkout@v2 | ||||
|       - name: Set up JDK 11 | ||||
|         uses: actions/setup-java@v2 | ||||
|         with: | ||||
|           distribution: adopt | ||||
|           java-version: 11 | ||||
|  | ||||
|         # Builds the release artifacts of the library | ||||
|       - name: Release build | ||||
|         run: ./gradlew :expandable-recyclerview:assembleRelease | ||||
|  | ||||
|         # Generates other artifacts (javadocJar is optional) | ||||
|       - name: Source jar and dokka | ||||
|         run: ./gradlew androidSourcesJar javadocJar | ||||
|  | ||||
|         # Runs upload, and then closes & releases the repository | ||||
|       - name: Publish to MavenCentral | ||||
|         run: ./gradlew publishReleasePublicationToSonatypeRepository --max-workers 1 closeAndReleaseSonatypeStagingRepository | ||||
|         env: | ||||
|           OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} | ||||
|           OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} | ||||
|           SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} | ||||
|           SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} | ||||
|           SIGNING_KEY: ${{ secrets.SIGNING_KEY }} | ||||
|           SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }} | ||||
							
								
								
									
										27
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| name: Test | ||||
|  | ||||
| on: | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - master | ||||
|       - develop | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     name: Run unit tests | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Check out code | ||||
|         uses: actions/checkout@v2 | ||||
|       - name: Set up JDK 11 | ||||
|         uses: actions/setup-java@v2 | ||||
|         with: | ||||
|           distribution: adopt | ||||
|           java-version: 11 | ||||
|       # Builds the release artifacts | ||||
|       - name: Build project | ||||
|         run: ./gradlew assemble | ||||
|  | ||||
|       # Run tests | ||||
|       - name: Run tests | ||||
|         run: ./gradlew test | ||||
							
								
								
									
										3
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,8 +1,5 @@ | ||||
| <component name="ProjectCodeStyleConfiguration"> | ||||
|   <code_scheme name="Project" version="173"> | ||||
|     <AndroidXmlCodeStyleSettings> | ||||
|       <option name="ARRANGEMENT_SETTINGS_MIGRATED_TO_191" value="true" /> | ||||
|     </AndroidXmlCodeStyleSettings> | ||||
|     <JetCodeStyleSettings> | ||||
|       <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> | ||||
|     </JetCodeStyleSettings> | ||||
|   | ||||
							
								
								
									
										6
									
								
								.idea/compiler.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.idea/compiler.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="CompilerConfiguration"> | ||||
|     <bytecodeTargetLevel target="11" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										4
									
								
								.idea/gradle.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								.idea/gradle.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,10 +1,13 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="GradleMigrationSettings" migrationVersion="1" /> | ||||
|   <component name="GradleSettings"> | ||||
|     <option name="linkedExternalProjectsSettings"> | ||||
|       <GradleProjectSettings> | ||||
|         <option name="testRunner" value="GRADLE" /> | ||||
|         <option name="distributionType" value="DEFAULT_WRAPPED" /> | ||||
|         <option name="externalProjectPath" value="$PROJECT_DIR$" /> | ||||
|         <option name="gradleJvm" value="11" /> | ||||
|         <option name="modules"> | ||||
|           <set> | ||||
|             <option value="$PROJECT_DIR$" /> | ||||
| @@ -13,7 +16,6 @@ | ||||
|           </set> | ||||
|         </option> | ||||
|         <option name="resolveModulePerSourceSet" value="false" /> | ||||
|         <option name="testRunner" value="PLATFORM" /> | ||||
|       </GradleProjectSettings> | ||||
|     </option> | ||||
|   </component> | ||||
|   | ||||
							
								
								
									
										30
									
								
								.idea/jarRepositories.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								.idea/jarRepositories.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="RemoteRepositoriesConfiguration"> | ||||
|     <remote-repository> | ||||
|       <option name="id" value="central" /> | ||||
|       <option name="name" value="Maven Central repository" /> | ||||
|       <option name="url" value="https://repo1.maven.org/maven2" /> | ||||
|     </remote-repository> | ||||
|     <remote-repository> | ||||
|       <option name="id" value="jboss.community" /> | ||||
|       <option name="name" value="JBoss Community repository" /> | ||||
|       <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> | ||||
|     </remote-repository> | ||||
|     <remote-repository> | ||||
|       <option name="id" value="BintrayJCenter" /> | ||||
|       <option name="name" value="BintrayJCenter" /> | ||||
|       <option name="url" value="https://jcenter.bintray.com/" /> | ||||
|     </remote-repository> | ||||
|     <remote-repository> | ||||
|       <option name="id" value="Google" /> | ||||
|       <option name="name" value="Google" /> | ||||
|       <option name="url" value="https://dl.google.com/dl/android/maven2/" /> | ||||
|     </remote-repository> | ||||
|     <remote-repository> | ||||
|       <option name="id" value="MavenRepo" /> | ||||
|       <option name="name" value="MavenRepo" /> | ||||
|       <option name="url" value="https://repo.maven.apache.org/maven2/" /> | ||||
|     </remote-repository> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										12
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,6 +1,16 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | ||||
|   <component name="DesignSurface"> | ||||
|     <option name="filePathToZoomLevelMap"> | ||||
|       <map> | ||||
|         <entry key="app/src/main/res/layout/activity_main.xml" value="0.18020833333333333" /> | ||||
|         <entry key="app/src/main/res/layout/item_level_1.xml" value="0.32916666666666666" /> | ||||
|         <entry key="app/src/main/res/layout/item_level_2.xml" value="0.32916666666666666" /> | ||||
|         <entry key="app/src/main/res/layout/item_level_3.xml" value="0.2824074074074074" /> | ||||
|       </map> | ||||
|     </option> | ||||
|   </component> | ||||
|   <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | ||||
|     <output url="file://$PROJECT_DIR$/build/classes" /> | ||||
|   </component> | ||||
|   <component name="ProjectType"> | ||||
|   | ||||
							
								
								
									
										12
									
								
								.idea/runConfigurations.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								.idea/runConfigurations.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,12 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="RunConfigurationProducerService"> | ||||
|     <option name="ignoredProducers"> | ||||
|       <set> | ||||
|         <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> | ||||
|         <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> | ||||
|         <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> | ||||
|       </set> | ||||
|     </option> | ||||
|   </component> | ||||
| </project> | ||||
| @@ -1,15 +1,14 @@ | ||||
| apply plugin: 'com.android.application' | ||||
| apply plugin: 'kotlin-android' | ||||
| apply plugin: 'kotlin-android-extensions' | ||||
| apply plugin: 'kotlin-kapt' | ||||
|  | ||||
| android { | ||||
|     compileSdkVersion 29 | ||||
|     buildToolsVersion "29.0.2" | ||||
|     compileSdkVersion 31 | ||||
|     buildToolsVersion "31.0.0" | ||||
|     defaultConfig { | ||||
|         applicationId "com.github.adriankuta" | ||||
|         minSdkVersion 23 | ||||
|         targetSdkVersion 29 | ||||
|         targetSdkVersion 31 | ||||
|         versionCode 1 | ||||
|         versionName "1.0" | ||||
|         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||
| @@ -20,6 +19,9 @@ android { | ||||
|             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' | ||||
|         } | ||||
|     } | ||||
|     buildFeatures { | ||||
|         viewBinding true | ||||
|     } | ||||
|     dataBinding { | ||||
|         enabled = true | ||||
|     } | ||||
| @@ -28,11 +30,11 @@ android { | ||||
| dependencies { | ||||
|     implementation fileTree(dir: 'libs', include: ['*.jar']) | ||||
|     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' | ||||
|     implementation 'androidx.appcompat:appcompat:1.3.1' | ||||
|     implementation 'androidx.core:core-ktx:1.6.0' | ||||
|     implementation 'androidx.constraintlayout:constraintlayout:2.1.0' | ||||
|     implementation 'com.github.adriankuta:expandable-recyclerView:1.0.0' | ||||
|     testImplementation 'junit:junit:4.12' | ||||
|     androidTestImplementation 'androidx.test.ext:junit:1.1.1' | ||||
|     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' | ||||
|     testImplementation 'junit:junit:4.13.2' | ||||
|     androidTestImplementation 'androidx.test.ext:junit:1.1.3' | ||||
|     androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' | ||||
| } | ||||
|   | ||||
| @@ -9,7 +9,8 @@ | ||||
|         android:roundIcon="@mipmap/ic_launcher_round" | ||||
|         android:supportsRtl="true" | ||||
|         android:theme="@style/AppTheme"> | ||||
|         <activity android:name=".MainActivity"> | ||||
|         <activity android:name=".MainActivity" | ||||
|             android:exported="true"> | ||||
|             <intent-filter> | ||||
|                 <action android:name="android.intent.action.MAIN" /> | ||||
|  | ||||
|   | ||||
| @@ -4,15 +4,17 @@ import android.os.Bundle | ||||
| import androidx.appcompat.app.AppCompatActivity | ||||
| import androidx.recyclerview.widget.LinearLayoutManager | ||||
| import androidx.recyclerview.widget.RecyclerView | ||||
| import com.github.adriankuta.databinding.ActivityMainBinding | ||||
| import com.github.adriankuta.expandable_recyclerview.expandableTree | ||||
| import kotlinx.android.synthetic.main.activity_main.* | ||||
|  | ||||
| class MainActivity : AppCompatActivity() { | ||||
|  | ||||
|     private lateinit var binding: ActivityMainBinding | ||||
|  | ||||
|     override fun onCreate(savedInstanceState: Bundle?) { | ||||
|         super.onCreate(savedInstanceState) | ||||
|         setContentView(R.layout.activity_main) | ||||
|  | ||||
|         binding = ActivityMainBinding.inflate(layoutInflater) | ||||
|  | ||||
|         val tree = expandableTree("World") { | ||||
|             child("North America") { | ||||
| @@ -29,10 +31,12 @@ class MainActivity : AppCompatActivity() { | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         val adapter = ExpandableAdapter() | ||||
|         recyclerView.layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false) | ||||
|         recyclerView.adapter = adapter | ||||
|         with(binding) { | ||||
|             val adapter = ExpandableAdapter() | ||||
|             recyclerView.layoutManager = LinearLayoutManager(this@MainActivity, RecyclerView.VERTICAL, false) | ||||
|             recyclerView.adapter = adapter | ||||
|  | ||||
|         adapter.setTree(tree) | ||||
|             adapter.setTree(tree) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -14,7 +14,8 @@ | ||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|         xmlns:tools="http://schemas.android.com/tools" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="wrap_content"> | ||||
|         android:layout_height="wrap_content" | ||||
|         tools:viewBindingIgnore="true"> | ||||
|  | ||||
|         <ImageView | ||||
|             android:id="@+id/expand_icon" | ||||
|   | ||||
| @@ -2,6 +2,7 @@ | ||||
| <layout> | ||||
|  | ||||
|     <data> | ||||
|  | ||||
|         <variable | ||||
|             name="node" | ||||
|             type="com.github.adriankuta.expandable_recyclerview.ExpandableTreeNode<String>" /> | ||||
| @@ -13,7 +14,8 @@ | ||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|         xmlns:tools="http://schemas.android.com/tools" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="wrap_content"> | ||||
|         android:layout_height="wrap_content" | ||||
|         tools:viewBindingIgnore="true"> | ||||
|  | ||||
|         <ImageView | ||||
|             android:id="@+id/expand_icon" | ||||
|   | ||||
| @@ -2,6 +2,7 @@ | ||||
| <layout> | ||||
|  | ||||
|     <data> | ||||
|  | ||||
|         <variable | ||||
|             name="node" | ||||
|             type="com.github.adriankuta.expandable_recyclerview.ExpandableTreeNode<String>" /> | ||||
| @@ -13,7 +14,8 @@ | ||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|         xmlns:tools="http://schemas.android.com/tools" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="wrap_content"> | ||||
|         android:layout_height="wrap_content" | ||||
|         tools:viewBindingIgnore="true"> | ||||
|  | ||||
|         <ImageView | ||||
|             android:id="@+id/expand_icon" | ||||
| @@ -33,12 +35,12 @@ | ||||
|             android:layout_width="0dp" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:padding="8dp" | ||||
|             app:layout_goneMarginStart="96dp" | ||||
|             android:text="@{node.value}" | ||||
|             app:layout_constraintBottom_toBottomOf="parent" | ||||
|             app:layout_constraintEnd_toEndOf="parent" | ||||
|             app:layout_constraintStart_toEndOf="@id/expand_icon" | ||||
|             app:layout_constraintTop_toTopOf="parent" | ||||
|             app:layout_goneMarginStart="96dp" | ||||
|             tools:text="@tools:sample/full_names" /> | ||||
|     </androidx.constraintlayout.widget.ConstraintLayout> | ||||
| </layout> | ||||
							
								
								
									
										17
									
								
								build.gradle
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								build.gradle
									
									
									
									
									
								
							| @@ -1,26 +1,29 @@ | ||||
| // Top-level build file where you can add configuration options common to all sub-projects/modules. | ||||
|  | ||||
| buildscript { | ||||
|     ext.kotlin_version = '1.3.61' | ||||
|     ext.kotlin_version = '1.5.30' | ||||
|     repositories { | ||||
|         google() | ||||
|         jcenter() | ||||
|         mavenCentral() | ||||
|  | ||||
|     } | ||||
|     dependencies { | ||||
|         classpath 'com.android.tools.build:gradle:3.5.3' | ||||
|         classpath 'com.android.tools.build:gradle:7.0.2' | ||||
|         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 | ||||
|     } | ||||
| } | ||||
|  | ||||
| plugins { | ||||
|     id("io.github.gradle-nexus.publish-plugin") version "1.1.0" | ||||
|     id("org.jetbrains.dokka") version "1.5.0" | ||||
| } | ||||
|  | ||||
| allprojects { | ||||
|     repositories { | ||||
|         google() | ||||
|         jcenter() | ||||
|  | ||||
|         mavenCentral() | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -28,4 +31,4 @@ task clean(type: Delete) { | ||||
|     delete rootProject.buildDir | ||||
| } | ||||
|  | ||||
| apply plugin: 'io.codearte.nexus-staging' | ||||
| apply from: "${rootDir}/scripts/publish-root.gradle" | ||||
|   | ||||
| @@ -1,21 +1,19 @@ | ||||
| apply plugin: 'com.android.library' | ||||
| apply plugin: 'kotlin-android' | ||||
| apply plugin: 'kotlin-android-extensions' | ||||
|  | ||||
| afterEvaluate { | ||||
|     generateReleaseBuildConfig.enabled = false | ||||
| } | ||||
|  | ||||
| android { | ||||
|     compileSdkVersion 29 | ||||
|     buildToolsVersion "29.0.2" | ||||
|     compileSdkVersion 31 | ||||
|     buildToolsVersion "31.0.0" | ||||
|  | ||||
|  | ||||
|     defaultConfig { | ||||
|         minSdkVersion 23 | ||||
|         targetSdkVersion 29 | ||||
|         versionCode 1 | ||||
|         versionName "1.0.0" | ||||
|         targetSdkVersion 31 | ||||
|         versionName "2.0.0" | ||||
|  | ||||
|         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||
|         consumerProguardFiles 'consumer-rules.pro' | ||||
| @@ -32,14 +30,14 @@ android { | ||||
|  | ||||
| dependencies { | ||||
|     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.recyclerview:recyclerview:1.1.0" | ||||
|     implementation "com.github.adriankuta:tree-structure:1.2.3" | ||||
|     implementation 'androidx.appcompat:appcompat:1.3.1' | ||||
|     implementation 'androidx.core:core-ktx:1.6.0' | ||||
|     implementation "androidx.recyclerview:recyclerview:1.2.1" | ||||
|     implementation "com.github.adriankuta:tree-structure:2.0.3" | ||||
|  | ||||
|     testImplementation 'junit:junit:4.12' | ||||
|     androidTestImplementation 'androidx.test.ext:junit:1.1.1' | ||||
|     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' | ||||
|     testImplementation 'junit:junit:4.13.2' | ||||
|     androidTestImplementation 'androidx.test.ext:junit:1.1.3' | ||||
|     androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' | ||||
| } | ||||
|  | ||||
| ext { | ||||
| @@ -48,4 +46,4 @@ ext { | ||||
|     PUBLISH_VERSION = android.defaultConfig.versionName | ||||
| } | ||||
|  | ||||
| apply from: "${rootProject.projectDir}/scripts/publish-mavencentral.gradle" | ||||
| apply from: "${rootProject.projectDir}/scripts/publish-module.gradle" | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| <resources> | ||||
|     <string name="app_name">Expandable RecyclerView</string> | ||||
| </resources> | ||||
							
								
								
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							| @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME | ||||
| distributionPath=wrapper/dists | ||||
| zipStoreBase=GRADLE_USER_HOME | ||||
| zipStorePath=wrapper/dists | ||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip | ||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip | ||||
|   | ||||
| @@ -1,122 +0,0 @@ | ||||
| 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 | ||||
| } | ||||
							
								
								
									
										86
									
								
								scripts/publish-module.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								scripts/publish-module.gradle
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,86 @@ | ||||
| apply plugin: 'maven-publish' | ||||
| apply plugin: 'signing' | ||||
| apply plugin: 'org.jetbrains.dokka' | ||||
|  | ||||
| task androidSourcesJar(type: Jar) { | ||||
|     archiveClassifier.set('sources') | ||||
|     if (project.plugins.findPlugin("com.android.library")) { | ||||
|         from android.sourceSets.main.java.srcDirs | ||||
|         from android.sourceSets.main.kotlin.srcDirs | ||||
|     } else { | ||||
|         from sourceSets.main.java.srcDirs | ||||
|         from sourceSets.main.kotlin.srcDirs | ||||
|     } | ||||
| } | ||||
|  | ||||
| tasks.withType(dokkaHtmlPartial.getClass()).configureEach { | ||||
|     pluginsMapConfiguration.set( | ||||
|             ["org.jetbrains.dokka.base.DokkaBase": """{ "separateInheritedMembers": true}"""] | ||||
|     ) | ||||
| } | ||||
|  | ||||
| task javadocJar(type: Jar, dependsOn: dokkaJavadoc) { | ||||
|     archiveClassifier.set('javadoc') | ||||
|     from dokkaJavadoc.outputDirectory | ||||
| } | ||||
|  | ||||
| artifacts { | ||||
|     archives androidSourcesJar | ||||
|     archives javadocJar | ||||
| } | ||||
|  | ||||
| group = PUBLISH_GROUP_ID | ||||
| version = PUBLISH_VERSION | ||||
|  | ||||
| afterEvaluate { | ||||
|     publishing { | ||||
|         publications { | ||||
|             release(MavenPublication) { | ||||
|                 groupId PUBLISH_GROUP_ID | ||||
|                 artifactId PUBLISH_ARTIFACT_ID | ||||
|                 version PUBLISH_VERSION | ||||
|                 if (project.plugins.findPlugin("com.android.library")) { | ||||
|                     from components.release | ||||
|                 } else { | ||||
|                     from components.java | ||||
|                 } | ||||
|  | ||||
|                 artifact androidSourcesJar | ||||
|                 artifact javadocJar | ||||
|  | ||||
|                 pom { | ||||
|                     name = PUBLISH_ARTIFACT_ID | ||||
|                     description = 'Simple implementation to store object in tree structure.' | ||||
|                     url = 'https://github.com/AdrianKuta/Tree-Data-Structure' | ||||
|                     licenses { | ||||
|                         license { | ||||
|                             name = 'MIT License' | ||||
|                             url = 'https://www.mit.edu/~amini/LICENSE.md' | ||||
|                         } | ||||
|                     } | ||||
|                     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/Tree-Data-Structure.git' | ||||
|                         developerConnection = 'scm:git:ssh://github.com/AdrianKuta/Tree-Data-Structure.git' | ||||
|                         url = 'https://github.com/AdrianKuta/Tree-Data-Structure/tree/master' | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| signing { | ||||
|     useInMemoryPgpKeys( | ||||
|             rootProject.ext["signing.keyId"], | ||||
|             rootProject.ext["signing.key"], | ||||
|             rootProject.ext["signing.password"], | ||||
|     ) | ||||
|     sign publishing.publications | ||||
| } | ||||
							
								
								
									
										43
									
								
								scripts/publish-root.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								scripts/publish-root.gradle
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| // Create variables with empty default values | ||||
| ext["ossrhUsername"] = '' | ||||
| ext["ossrhPassword"] = '' | ||||
| ext["sonatypeStagingProfileId"] = '' | ||||
| ext["signing.keyId"] = '' | ||||
| ext["signing.password"] = '' | ||||
| ext["signing.key"] = '' | ||||
| ext["snapshot"] = '' | ||||
|  | ||||
| File secretPropsFile = project.rootProject.file('local.properties') | ||||
| if (secretPropsFile.exists()) { | ||||
|     // Read local.properties file first if it exists | ||||
|     Properties p = new Properties() | ||||
|     new FileInputStream(secretPropsFile).withCloseable { is -> p.load(is) } | ||||
|     p.each { name, value -> ext[name] = value } | ||||
| } else { | ||||
|     // Use system environment variables | ||||
|     ext["ossrhUsername"] = System.getenv('OSSRH_USERNAME') | ||||
|     ext["ossrhPassword"] = System.getenv('OSSRH_PASSWORD') | ||||
|     ext["sonatypeStagingProfileId"] = System.getenv('SONATYPE_STAGING_PROFILE_ID') | ||||
|     ext["signing.keyId"] = System.getenv('SIGNING_KEY_ID') | ||||
|     ext["signing.password"] = System.getenv('SIGNING_PASSWORD') | ||||
|     ext["signing.key"] = System.getenv('SIGNING_KEY') | ||||
|     ext["snapshot"] = System.getenv('SNAPSHOT') | ||||
| } | ||||
|  | ||||
| //if (snapshot) { | ||||
| //    ext["rootVersionName"] = Configuration.snapshotVersionName | ||||
| //} else { | ||||
| //    ext["rootVersionName"] = Configuration.versionName | ||||
| //} | ||||
|  | ||||
| // Set up Sonatype repository | ||||
| nexusPublishing { | ||||
|     repositories { | ||||
|         sonatype { | ||||
|             stagingProfileId = sonatypeStagingProfileId | ||||
|             username = ossrhUsername | ||||
|             password = ossrhPassword | ||||
|             //version = rootVersionName | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 GitHub
						GitHub