chore: integrated maven publish plugin and some tweaks for publish

This commit is contained in:
2024-01-06 04:52:00 +08:00
parent 7608d034cd
commit 6e04a33fa7
11 changed files with 83 additions and 24 deletions

View File

@@ -1,6 +1,32 @@
import com.vanniktech.maven.publish.JavadocJar
import com.vanniktech.maven.publish.KotlinMultiplatform
import com.vanniktech.maven.publish.MavenPublishBaseExtension
plugins { plugins {
autowire(libs.plugins.kotlin.multiplatform) apply false autowire(libs.plugins.kotlin.multiplatform) apply false
autowire(libs.plugins.android.application) apply false autowire(libs.plugins.android.application) apply false
autowire(libs.plugins.android.library) apply false autowire(libs.plugins.android.library) apply false
autowire(libs.plugins.jetbrains.compose) apply false autowire(libs.plugins.jetbrains.compose) apply false
autowire(libs.plugins.maven.publish) apply false
}
libraryProjects {
afterEvaluate {
configure<MavenPublishBaseExtension> {
configure(KotlinMultiplatform(javadocJar = JavadocJar.Empty()))
}
}
}
fun libraryProjects(action: Action<in Project>) {
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"
} }

View File

@@ -2,9 +2,11 @@ plugins {
autowire(libs.plugins.kotlin.multiplatform) autowire(libs.plugins.kotlin.multiplatform)
autowire(libs.plugins.android.library) autowire(libs.plugins.android.library)
autowire(libs.plugins.jetbrains.compose) autowire(libs.plugins.jetbrains.compose)
autowire(libs.plugins.maven.publish)
} }
group = property.project.groupName group = property.project.groupName
version = property.project.flexiui.core.version
kotlin { kotlin {
androidTarget { androidTarget {
@@ -59,7 +61,7 @@ kotlin {
} }
android { android {
namespace = property.project.groupName namespace = property.project.flexiui.core.namespace
compileSdk = property.project.android.compileSdk compileSdk = property.project.android.compileSdk
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")

View File

@@ -0,0 +1 @@
POM_ARTIFACT_ID=core

View File

@@ -2,9 +2,11 @@ plugins {
autowire(libs.plugins.kotlin.multiplatform) autowire(libs.plugins.kotlin.multiplatform)
autowire(libs.plugins.android.library) autowire(libs.plugins.android.library)
autowire(libs.plugins.jetbrains.compose) autowire(libs.plugins.jetbrains.compose)
autowire(libs.plugins.maven.publish)
} }
group = property.project.groupName group = property.project.groupName
version = property.project.flexiui.resources.version
kotlin { kotlin {
androidTarget { androidTarget {
@@ -45,7 +47,7 @@ kotlin {
} }
android { android {
namespace = property.project.groupName namespace = property.project.flexiui.resources.namespace
compileSdk = property.project.android.compileSdk compileSdk = property.project.android.compileSdk
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")

View File

@@ -0,0 +1 @@
POM_ARTIFACT_ID=resources

View File

@@ -8,14 +8,35 @@ kotlin.mpp.applyDefaultHierarchyTemplate=false
org.jetbrains.compose.experimental.uikit.enabled=true org.jetbrains.compose.experimental.uikit.enabled=true
# Project Configuration # Project Configuration
project.name=FlexiUI project.name=FlexiUI
project.description=A flexible and useful UI component library.
project.url=https://github.com/BetterAndroid/FlexiUI project.url=https://github.com/BetterAndroid/FlexiUI
project.groupName=com.highcapable.flexiui project.groupName=com.highcapable.flexiui
project.licence.name=Apache License 2.0 project.flexiui-core.namespace=${project.groupName}.core
project.licence.url=https://github.com/BetterAndroid/FlexiUI/blob/main/LICENSE project.flexiui-core.version=0.1.0-alpha01
project.sharedApp.packageName=${project.groupName}.demo 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.compileSdk=34
project.android.minSdk=21 project.android.minSdk=21
project.android.targetSdk=34 project.android.targetSdk=34
project.androidApp.versionName=1.0.0 # Maven Publish Configuration
project.androidApp.versionCode=1 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

View File

@@ -21,6 +21,9 @@ plugins:
com.android.library: com.android.library:
alias: android-library alias: android-library
version-ref: android-application version-ref: android-application
com.vanniktech.maven.publish:
alias: maven-publish
version: 0.26.0
libraries: libraries:
# Use a placeholder for the alpha / beta compose version # Use a placeholder for the alpha / beta compose version

View File

@@ -4,8 +4,6 @@ plugins {
autowire(libs.plugins.jetbrains.compose) autowire(libs.plugins.jetbrains.compose)
} }
group = property.project.sharedApp.packageName
kotlin { kotlin {
androidTarget() androidTarget()
jvmToolchain(17) jvmToolchain(17)
@@ -19,7 +17,7 @@ kotlin {
} }
android { android {
namespace = property.project.sharedApp.packageName namespace = property.project.samples.androidApp.packageName
compileSdk = property.project.android.compileSdk compileSdk = property.project.android.compileSdk
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
@@ -27,11 +25,11 @@ android {
sourceSets["main"].resources.srcDirs("src/commonMain/resources") sourceSets["main"].resources.srcDirs("src/commonMain/resources")
defaultConfig { defaultConfig {
applicationId = property.project.sharedApp.packageName applicationId = property.project.samples.androidApp.packageName
minSdk = property.project.android.minSdk minSdk = property.project.android.minSdk
targetSdk = property.project.android.targetSdk targetSdk = property.project.android.targetSdk
versionName = property.project.androidApp.versionName versionName = property.project.samples.androidApp.versionName
versionCode = property.project.androidApp.versionCode versionCode = property.project.samples.androidApp.versionCode
} }
buildTypes { buildTypes {
release { release {

View File

@@ -3,7 +3,8 @@ plugins {
autowire(libs.plugins.jetbrains.compose) autowire(libs.plugins.jetbrains.compose)
} }
group = property.project.sharedApp.packageName group = property.project.samples.desktopApp.groupName
version = property.project.samples.desktopApp.version
kotlin { kotlin {
jvm("desktop") jvm("desktop")
@@ -24,6 +25,6 @@ java {
compose.desktop { compose.desktop {
application { application {
mainClass = "${property.project.sharedApp.packageName}.MainKt" mainClass = "$group.MainKt"
} }
} }

View File

@@ -4,8 +4,6 @@ plugins {
autowire(libs.plugins.jetbrains.compose) autowire(libs.plugins.jetbrains.compose)
} }
group = property.project.sharedApp.packageName
kotlin { kotlin {
androidTarget() androidTarget()
jvm("desktop") jvm("desktop")
@@ -25,19 +23,19 @@ kotlin {
dependencies { dependencies {
implementation(compose.runtime) implementation(compose.runtime)
implementation(compose.foundation) implementation(compose.foundation)
api(com.highcapable.betterandroid.compose.multiplatform)
api(projects.flexiuiCore) api(projects.flexiuiCore)
api(com.highcapable.betterandroid.compose.multiplatform)
} }
} }
val androidMain by getting { val androidMain by getting {
dependencies { 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.core.core.ktx)
api(androidx.appcompat.appcompat) api(androidx.appcompat.appcompat)
api(androidx.activity.activity) api(androidx.activity.activity)
api(androidx.activity.activity.compose) 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 { val desktopMain by getting {
@@ -58,7 +56,7 @@ kotlin {
} }
android { android {
namespace = property.project.sharedApp.packageName namespace = property.project.samples.shared.namespace
compileSdk = property.project.android.compileSdk compileSdk = property.project.android.compileSdk
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")

View File

@@ -14,7 +14,13 @@ sweetDependency {
isUseDependencyResolutionManagement = false isUseDependencyResolutionManagement = false
} }
sweetProperty { sweetProperty {
global { sourcesCode { className = "FlexiUI" } } global {
sourcesCode {
className = "FlexiUI"
includeKeys("^project\\..*\$".toRegex())
isEnableRestrictedAccess = true
}
}
rootProject { all { isEnable = false } } rootProject { all { isEnable = false } }
project( project(
":samples", ":samples",