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 {
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<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.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")

View File

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

View File

@@ -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")

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
# 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
# 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

View File

@@ -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

View File

@@ -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 {

View File

@@ -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"
}
}

View File

@@ -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")

View File

@@ -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",