From 6e04a33fa7c28054546a5484b037854718fee637 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Sat, 6 Jan 2024 04:52:00 +0800 Subject: [PATCH] chore: integrated maven publish plugin and some tweaks for publish --- build.gradle.kts | 26 +++++++++++++++ flexiui-core/build.gradle.kts | 4 ++- flexiui-core/gradle.properties | 1 + flexiui-resources/build.gradle.kts | 4 ++- flexiui-resources/gradle.properties | 1 + gradle.properties | 33 +++++++++++++++---- .../sweet-dependency-config.yaml | 3 ++ samples/androidApp/build.gradle.kts | 10 +++--- samples/desktopApp/build.gradle.kts | 5 +-- samples/shared/build.gradle.kts | 12 +++---- settings.gradle.kts | 8 ++++- 11 files changed, 83 insertions(+), 24 deletions(-) create mode 100644 flexiui-core/gradle.properties create mode 100644 flexiui-resources/gradle.properties diff --git a/build.gradle.kts b/build.gradle.kts index 19264c6..ab24a7b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,32 @@ +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinMultiplatform +import com.vanniktech.maven.publish.MavenPublishBaseExtension + plugins { autowire(libs.plugins.kotlin.multiplatform) apply false autowire(libs.plugins.android.application) apply false autowire(libs.plugins.android.library) apply false autowire(libs.plugins.jetbrains.compose) apply false + autowire(libs.plugins.maven.publish) apply false +} + +libraryProjects { + afterEvaluate { + configure { + configure(KotlinMultiplatform(javadocJar = JavadocJar.Empty())) + } + } +} + +fun libraryProjects(action: Action) { + val libraries = listOf( + Libraries.FLEXIUI_CORE, + Libraries.FLEXIUI_RESOURCES, + ) + allprojects { if (libraries.contains(name)) action.execute(this) } +} + +object Libraries { + const val FLEXIUI_CORE = "flexiui-core" + const val FLEXIUI_RESOURCES = "flexiui-resources" } \ No newline at end of file diff --git a/flexiui-core/build.gradle.kts b/flexiui-core/build.gradle.kts index 33cb254..f17b5d9 100644 --- a/flexiui-core/build.gradle.kts +++ b/flexiui-core/build.gradle.kts @@ -2,9 +2,11 @@ plugins { autowire(libs.plugins.kotlin.multiplatform) autowire(libs.plugins.android.library) autowire(libs.plugins.jetbrains.compose) + autowire(libs.plugins.maven.publish) } group = property.project.groupName +version = property.project.flexiui.core.version kotlin { androidTarget { @@ -59,7 +61,7 @@ kotlin { } android { - namespace = property.project.groupName + namespace = property.project.flexiui.core.namespace compileSdk = property.project.android.compileSdk sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") diff --git a/flexiui-core/gradle.properties b/flexiui-core/gradle.properties new file mode 100644 index 0000000..2dd8001 --- /dev/null +++ b/flexiui-core/gradle.properties @@ -0,0 +1 @@ +POM_ARTIFACT_ID=core \ No newline at end of file diff --git a/flexiui-resources/build.gradle.kts b/flexiui-resources/build.gradle.kts index 6635b55..b20c228 100644 --- a/flexiui-resources/build.gradle.kts +++ b/flexiui-resources/build.gradle.kts @@ -2,9 +2,11 @@ plugins { autowire(libs.plugins.kotlin.multiplatform) autowire(libs.plugins.android.library) autowire(libs.plugins.jetbrains.compose) + autowire(libs.plugins.maven.publish) } group = property.project.groupName +version = property.project.flexiui.resources.version kotlin { androidTarget { @@ -45,7 +47,7 @@ kotlin { } android { - namespace = property.project.groupName + namespace = property.project.flexiui.resources.namespace compileSdk = property.project.android.compileSdk sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") diff --git a/flexiui-resources/gradle.properties b/flexiui-resources/gradle.properties new file mode 100644 index 0000000..5fd4882 --- /dev/null +++ b/flexiui-resources/gradle.properties @@ -0,0 +1 @@ +POM_ARTIFACT_ID=resources \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 4fba762..dc1d600 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,14 +8,35 @@ kotlin.mpp.applyDefaultHierarchyTemplate=false org.jetbrains.compose.experimental.uikit.enabled=true # Project Configuration project.name=FlexiUI -project.description=A flexible and useful UI component library. project.url=https://github.com/BetterAndroid/FlexiUI project.groupName=com.highcapable.flexiui -project.licence.name=Apache License 2.0 -project.licence.url=https://github.com/BetterAndroid/FlexiUI/blob/main/LICENSE -project.sharedApp.packageName=${project.groupName}.demo +project.flexiui-core.namespace=${project.groupName}.core +project.flexiui-core.version=0.1.0-alpha01 +project.flexiui-resources.namespace=${project.groupName}.resources +project.flexiui-resources.version=0.1.0-alpha01 +project.samples.shared.namespace=${project.groupName}.shared +project.samples.desktopApp.groupName=${project.groupName}.demo +project.samples.desktopApp.version=universal +project.samples.androidApp.packageName=${project.groupName}.demo +project.samples.androidApp.versionName=universal +project.samples.androidApp.versionCode=1 project.android.compileSdk=34 project.android.minSdk=21 project.android.targetSdk=34 -project.androidApp.versionName=1.0.0 -project.androidApp.versionCode=1 \ No newline at end of file +# Maven Publish Configuration +SONATYPE_HOST=S01 +RELEASE_SIGNING_ENABLED=true +# Maven POM Configuration +POM_NAME=FlexiUI +POM_DESCRIPTION=A flexible and useful UI component library. +POM_URL=https://github.com/BetterAndroid/FlexiUI +POM_LICENSE_NAME=Apache License 2.0 +POM_LICENSE_URL=https://github.com/BetterAndroid/FlexiUI/blob/main/LICENSE +POM_LICENSE_DIST=repo +POM_SCM_URL=https://github.com/BetterAndroid/FlexiUI +POM_SCM_CONNECTION=scm:git:git://github.com/BetterAndroid/FlexiUI.git +POM_SCM_DEV_CONNECTION=scm:git:ssh://github.com/BetterAndroid/FlexiUI.git +POM_DEVELOPER_ID=0 +POM_DEVELOPER_NAME=fankes +POM_DEVELOPER_EMAIL=qzmmcn@163.com +POM_DEVELOPER_URL=https://github.com/fankes \ No newline at end of file diff --git a/gradle/sweet-dependency/sweet-dependency-config.yaml b/gradle/sweet-dependency/sweet-dependency-config.yaml index fb97586..840fc6b 100644 --- a/gradle/sweet-dependency/sweet-dependency-config.yaml +++ b/gradle/sweet-dependency/sweet-dependency-config.yaml @@ -21,6 +21,9 @@ plugins: com.android.library: alias: android-library version-ref: android-application + com.vanniktech.maven.publish: + alias: maven-publish + version: 0.26.0 libraries: # Use a placeholder for the alpha / beta compose version diff --git a/samples/androidApp/build.gradle.kts b/samples/androidApp/build.gradle.kts index edf6840..46f665e 100644 --- a/samples/androidApp/build.gradle.kts +++ b/samples/androidApp/build.gradle.kts @@ -4,8 +4,6 @@ plugins { autowire(libs.plugins.jetbrains.compose) } -group = property.project.sharedApp.packageName - kotlin { androidTarget() jvmToolchain(17) @@ -19,7 +17,7 @@ kotlin { } android { - namespace = property.project.sharedApp.packageName + namespace = property.project.samples.androidApp.packageName compileSdk = property.project.android.compileSdk sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") @@ -27,11 +25,11 @@ android { sourceSets["main"].resources.srcDirs("src/commonMain/resources") defaultConfig { - applicationId = property.project.sharedApp.packageName + applicationId = property.project.samples.androidApp.packageName minSdk = property.project.android.minSdk targetSdk = property.project.android.targetSdk - versionName = property.project.androidApp.versionName - versionCode = property.project.androidApp.versionCode + versionName = property.project.samples.androidApp.versionName + versionCode = property.project.samples.androidApp.versionCode } buildTypes { release { diff --git a/samples/desktopApp/build.gradle.kts b/samples/desktopApp/build.gradle.kts index eb9b2a0..deee3d5 100644 --- a/samples/desktopApp/build.gradle.kts +++ b/samples/desktopApp/build.gradle.kts @@ -3,7 +3,8 @@ plugins { autowire(libs.plugins.jetbrains.compose) } -group = property.project.sharedApp.packageName +group = property.project.samples.desktopApp.groupName +version = property.project.samples.desktopApp.version kotlin { jvm("desktop") @@ -24,6 +25,6 @@ java { compose.desktop { application { - mainClass = "${property.project.sharedApp.packageName}.MainKt" + mainClass = "$group.MainKt" } } \ No newline at end of file diff --git a/samples/shared/build.gradle.kts b/samples/shared/build.gradle.kts index 313f04c..73364a4 100644 --- a/samples/shared/build.gradle.kts +++ b/samples/shared/build.gradle.kts @@ -4,8 +4,6 @@ plugins { autowire(libs.plugins.jetbrains.compose) } -group = property.project.sharedApp.packageName - kotlin { androidTarget() jvm("desktop") @@ -25,19 +23,19 @@ kotlin { dependencies { implementation(compose.runtime) implementation(compose.foundation) - api(com.highcapable.betterandroid.compose.multiplatform) api(projects.flexiuiCore) + api(com.highcapable.betterandroid.compose.multiplatform) } } val androidMain by getting { dependencies { - api(com.highcapable.betterandroid.ui.component) - api(com.highcapable.betterandroid.ui.extension) - api(com.highcapable.betterandroid.system.extension) api(androidx.core.core.ktx) api(androidx.appcompat.appcompat) api(androidx.activity.activity) api(androidx.activity.activity.compose) + api(com.highcapable.betterandroid.ui.component) + api(com.highcapable.betterandroid.ui.extension) + api(com.highcapable.betterandroid.system.extension) } } val desktopMain by getting { @@ -58,7 +56,7 @@ kotlin { } android { - namespace = property.project.sharedApp.packageName + namespace = property.project.samples.shared.namespace compileSdk = property.project.android.compileSdk sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") diff --git a/settings.gradle.kts b/settings.gradle.kts index 3b3f47e..f31577a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -14,7 +14,13 @@ sweetDependency { isUseDependencyResolutionManagement = false } sweetProperty { - global { sourcesCode { className = "FlexiUI" } } + global { + sourcesCode { + className = "FlexiUI" + includeKeys("^project\\..*\$".toRegex()) + isEnableRestrictedAccess = true + } + } rootProject { all { isEnable = false } } project( ":samples",