@@ -28,6 +28,8 @@ import org.gradle.api.JavaVersion
2828import org.gradle.api.Plugin
2929import org.gradle.api.Project
3030import org.gradle.api.artifacts.VersionCatalogsExtension
31+ import org.gradle.api.attributes.Category
32+ import org.gradle.api.attributes.Usage
3133import org.gradle.api.attributes.java.TargetJvmEnvironment
3234import org.gradle.api.component.SoftwareComponentFactory
3335import org.gradle.api.plugins.JavaPlugin
@@ -89,25 +91,37 @@ class ProjectPlugin @Inject constructor(
8991 }
9092
9193 if (e.createAndroidCompatComponent.get()) {
94+ val configurations = project.configurations
95+
9296 project.logger.warn(" Creating compatible component" )
93- val component = softwareComponentFactory.adhoc(" depOnlyComponent" )
94- project.components.add(component)
95- val pseudoConfig = project.configurations.dependencyScope(" android" ) {
97+
98+ val androidRuntime = configurations.dependencyScope(" androidRuntime" ) {
99+ dependencies.add(project.dependencyFactory.create(" io.github.pdvrieze.xmlutil:${project.name} :${project.version} " ))
100+ }
101+ val androidRuntimeElements = configurations.consumable(" androidRuntimeElements" ) {
102+ extendsFrom(androidRuntime.get())
96103 attributes {
104+ attribute(Usage .USAGE_ATTRIBUTE , project.objects.named(Usage .JAVA_API ))
105+ // see whether this should be library
106+ attribute(Category .CATEGORY_ATTRIBUTE , project.objects.named(Category .LIBRARY ))
97107 attribute(TargetJvmEnvironment .TARGET_JVM_ENVIRONMENT_ATTRIBUTE , project.envAndroid)
98108 attribute(KotlinPlatformType .attribute, KotlinPlatformType .androidJvm)
99109 }
110+ }
100111
101- component.addVariantsFromConfiguration(this ) {
102- mapToMavenScope(" compile" )
103- }
104- dependencies.add(project.dependencyFactory.create(" io.github.pdvrieze.xmlutil:${project.name} :${project.version} " ))
112+ val component = softwareComponentFactory.adhoc(" androidComponent" )
113+ project.components.add(component)
114+
115+ component.addVariantsFromConfiguration(androidRuntimeElements.get()) {
116+ logger.lifecycle(" Add variant to runtime scope" )
117+ mapToMavenScope(" runtime" )
105118 }
106119
120+
107121 project.extensions.configure<PublishingExtension > {
108122 publications {
109123 create<MavenPublication >(" android" ) {
110- artifactId = project.name
124+ artifactId = " ${ project.name} -android "
111125 from(component)
112126 }
113127 }
0 commit comments