Skip to content

Commit a55913c

Browse files
author
Roman Choriev
authored
Merge pull request #2 from RedMadRobot/publish_config
New publish config
2 parents 12ecd1f + 0ee0125 commit a55913c

File tree

28 files changed

+237
-174
lines changed

28 files changed

+237
-174
lines changed

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ gen/
1111
.gradle/
1212
build/
1313

14-
gradle/publish.properties
15-
1614
# Local configuration file (sdk path, etc)
1715
local.properties
16+
gradle.properties
1817

1918
# Proguard folder generated by Eclipse
2019
proguard/

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ maven {
4444
4545
dependencies {
4646
//core модуль панели
47-
implementation 'com.redmadrobot.debug:panel-core:${debug_panel_version}'
47+
debugImplementation 'com.redmadrobot.debug:panel-core:${debug_panel_version}'
4848
}
4949
```
5050

@@ -55,21 +55,21 @@ dependencies {
5555
```groovy
5656
dependencies {
5757
//Плагин для работы с аккаунтами
58-
implementation 'com.redmadrobot.debug:accounts-plugin:${debug_panel_version}'
58+
debugImplementation 'com.redmadrobot.debug:accounts-plugin:${debug_panel_version}'
5959
6060
//Плагин для работы с серверами
61-
implementation 'com.redmadrobot.debug:servers-plugin:${debug_panel_version}'
61+
debugImplementation 'com.redmadrobot.debug:servers-plugin:${debug_panel_version}'
6262
6363
//Плагин для работы с SharedPreferences
64-
implementation 'com.redmadrobot.debug:app-settings-plugin:${debug_panel_version}'
64+
debugImplementation 'com.redmadrobot.debug:app-settings-plugin:${debug_panel_version}'
6565
6666
//Плагин для работы с Feature Toggle на основе Flipper
67-
implementation 'com.redmadrobot.debug:flipper-plugin:${debug_panel_version}'
67+
debugImplementation 'com.redmadrobot.debug:flipper-plugin:${debug_panel_version}'
6868
//Так же необходимо подключить саму библеотеку flipper
69-
implementation "com.redmadrobot:flipper:${flipper_version}"
69+
debugImplementation "com.redmadrobot:flipper:${flipper_version}"
7070
7171
//Плагин для подмены переменных
72-
implementation 'com.redmadrobot.debug:variable-plugin:${flipper_version}'
72+
debugImplementation 'com.redmadrobot.debug:variable-plugin:${flipper_version}'
7373
}
7474
7575
```

build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ buildscript {
1313
}
1414

1515
subprojects {
16+
17+
version = getLibVersion()
18+
group = "com.redmadrobot.debug"
19+
1620
repositories {
1721
google()
1822
jcenter()

buildSrc/build.gradle.kts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,16 @@ repositories {
88
google()
99
mavenCentral()
1010
}
11+
12+
gradlePlugin {
13+
plugins {
14+
create("PublishPlugin") {
15+
id = "publishPlugin"
16+
implementationClass = "com.redmadrobot.build.PublishPlugin"
17+
}
18+
}
19+
}
20+
21+
dependencies {
22+
implementation("com.android.tools.build:gradle:7.0.0")
23+
}
Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import org.gradle.api.Project
12
import org.gradle.kotlin.dsl.provideDelegate
23
import java.io.File
34
import java.util.*
@@ -7,16 +8,6 @@ object Project {
78
const val TARGET_SDK = 31
89
const val COMPILE_SDK = 31
910

10-
private val versionProperties = Properties().apply {
11-
load(File("gradle/version.properties").inputStream())
12-
}
13-
14-
val versionCod: Int = versionProperties.getProperty("version_code").toInt()
15-
val versionName: String = Properties().apply {
16-
load(File("gradle/version.properties").inputStream())
17-
}.getProperty("version_name")
18-
19-
2011
object BuildTypes {
2112
const val release = "release"
2213
}
@@ -25,4 +16,8 @@ object Project {
2516
const val androidOptimizedRules = "proguard-android-optimize.txt"
2617
const val projectRules = "proguard-rules.pro"
2718
}
28-
}
19+
}
20+
21+
fun Project.getLibVersion(): String = Properties().apply {
22+
load(File("$rootDir/gradle/publish.properties").inputStream())
23+
}.getProperty("lib_version")
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
package com.redmadrobot.build
2+
3+
import com.android.build.gradle.BaseExtension
4+
import org.gradle.api.Plugin
5+
import org.gradle.api.Project
6+
import org.gradle.api.publish.PublishingExtension
7+
import org.gradle.api.publish.maven.MavenPublication
8+
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
9+
import org.gradle.jvm.tasks.Jar
10+
import org.gradle.kotlin.dsl.*
11+
import org.gradle.plugins.signing.SigningExtension
12+
import org.gradle.plugins.signing.SigningPlugin
13+
import java.io.File
14+
import java.util.*
15+
16+
class PublishPlugin : Plugin<Project> {
17+
lateinit var projectDir: File
18+
lateinit var rootDir: File
19+
20+
private val publishProperties by lazy {
21+
22+
Properties().apply {
23+
load(File("$rootDir/gradle/publish.properties").inputStream())
24+
}
25+
}
26+
27+
private val libraryProperties by lazy {
28+
Properties().apply {
29+
load(File("$projectDir/library.properties").inputStream())
30+
}
31+
}
32+
33+
override fun apply(target: Project) {
34+
projectDir = target.projectDir
35+
rootDir = target.rootDir
36+
37+
with(target) {
38+
afterEvaluate {
39+
configurePublishing()
40+
configureSigning()
41+
}
42+
}
43+
}
44+
45+
private fun Project.configurePublishing() {
46+
plugins.apply(MavenPublishPlugin::class.java)
47+
val libDescription = this.description.orEmpty()
48+
49+
configure<PublishingExtension> {
50+
val android = extensions.getByName<BaseExtension>("android")
51+
52+
val sourcesJar = tasks.register<Jar>("sourcesJar") {
53+
archiveClassifier.set("sources")
54+
from(android.sourceSets["main"].java.srcDirs)
55+
}
56+
57+
publications {
58+
create("release", MavenPublication::class.java) {
59+
from(project.components.findByName("release"))
60+
61+
artifact(sourcesJar)
62+
63+
groupId = publishProperties.getProperty("group_id")
64+
artifactId = libraryProperties.getProperty("lib_name")
65+
version = publishProperties.getProperty("lib_version")
66+
67+
pom {
68+
name.set(libraryProperties.getProperty("lib_name"))
69+
description.set(libDescription)
70+
url.set(publishProperties.getProperty("home_page"))
71+
72+
licenses {
73+
license {
74+
name.set(publishProperties.getProperty("license_name"))
75+
url.set(publishProperties.getProperty("license_url"))
76+
}
77+
}
78+
79+
developers {
80+
developer {
81+
id.set("Zestxx")
82+
name.set("Roman Choriev")
83+
email.set("[email protected]")
84+
}
85+
86+
developer {
87+
id.set("osipxd")
88+
name.set("Osip Fatkullin")
89+
email.set("[email protected]")
90+
}
91+
}
92+
93+
scm {
94+
connection.set("scm:git:git://github.com/RedMadRobot/debug-panel-android.git")
95+
developerConnection.set("scm:git:ssh://github.com/RedMadRobot/debug-panel-android.git")
96+
url.set(publishProperties.getProperty("home_page"))
97+
}
98+
}
99+
100+
repositories {
101+
mavenLocal()
102+
maven {
103+
name = "OSSRH"
104+
url = project.uri(publishProperties.getProperty("sonatype_repo"))
105+
106+
credentials {
107+
username = System.getenv("OSSRH_USER")
108+
password = System.getenv("OSSRH_PASSWORD")
109+
}
110+
}
111+
}
112+
}
113+
}
114+
}
115+
}
116+
117+
private fun Project.configureSigning() {
118+
plugins.apply(SigningPlugin::class.java)
119+
120+
configure<SigningExtension> {
121+
val publishing = extensions.getByType(PublishingExtension::class.java)
122+
123+
useGpgCmd()
124+
sign(publishing.publications.getByName("release"))
125+
}
126+
}
127+
}

debug-panel-common/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ plugins {
33
kotlin(Plugins.Kotlin.androidPlugin)
44
kotlin(Plugins.Kotlin.androidExtensions)
55
kotlin(Plugins.Kotlin.kapt)
6+
id("publishPlugin")
67
}
78

8-
apply(from = rootProject.file("gradle/publish.gradle"))
9+
description = "Debug panel common components"
910

1011
android {
1112

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
lib_version=0.5.0
21
lib_name=panel-common
3-
group_id=com.redmadrobot.debug
4-
repository=https://nexus.redmadrobot.com/repository/android/
5-
artifact_location=/outputs/aar/debug-panel-common-release.aar
2+
lib_vcs=https://github.com/RedMadRobot/debug-panel-android.git
3+
lib_issue_tracker=https://github.com/RedMadRobot/debug-panel-android/issues

debug-panel-core/build.gradle.kts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ plugins {
33
kotlin(Plugins.Kotlin.androidPlugin)
44
kotlin(Plugins.Kotlin.androidExtensions)
55
kotlin(Plugins.Kotlin.kapt)
6+
id("publishPlugin")
67
}
78

8-
apply(from = rootProject.file("gradle/publish.gradle"))
9+
description = "Debug panel core library"
910

1011
android {
1112
compileSdk = Project.COMPILE_SDK
@@ -47,4 +48,4 @@ android {
4748
dependencies {
4849
implementation(project(":debug-panel-common"))
4950
kapt(Dependencies.room.compiler)
50-
}
51+
}
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
lib_version=0.5.0
21
lib_name=panel-core
3-
group_id=com.redmadrobot.debug
4-
repository=https://nexus.redmadrobot.com/repository/android/
5-
artifact_location=/outputs/aar/debug-panel-core-release.aar
2+
lib_vcs=https://github.com/RedMadRobot/debug-panel-android.git
3+
lib_issue_tracker=https://github.com/RedMadRobot/debug-panel-android/issues

0 commit comments

Comments
 (0)