Andrei Marshalov
05/13/2020, 8:11 AMmaven-publish
to publish my multiplatphorm library to maven
repo. My publishing config looks like:
project.afterEvaluate {
publishing {
publications {
create<MavenPublication>("maven") {
groupId = projectGroup
artifactId = projectArtifactName
version = "${android.defaultConfig.versionName}"
tasks.getByName("bundle${buildType.capitalize()}Aar").outputs.files.forEach {
artifact(it)
}
}
}
repositories {
mavenLocal()
}
}
}
As a result of publishing i get several modules:
└── repository
└── com
└── example
├── lib-ios
│ ├── 1.0.0
├── lib-iossim
│ ├── 1.0.0
├── lib-macos
│ ├── 1.0.0
├── lib-metadata
│ ├── 1.0.0
└── lib
├── 1.0.0
After that i use this library in Android app as:
dependencies {
implementation("com.example:lib:1.0.0")
}
So it looks like i need to publish to maven
only Android part of my library, since i use carthage
to publish iOS part.
How can i skip all target except Android for my publication?Check your grade > lib > publishing tasks. There should be:
andPublishAndroidPublicationToMavenLocal
PublishAndroidPublicationToMavenRepository
This should publish only Android part of the library.Looks like a good solution
Kris Wong
05/13/2020, 12:44 PMdefaults(delegateClosureOf<groovy.lang.GroovyObject> {
invokeMethod("publications", arrayOf("androidDebug", "androidRelease"))
})
Andrei Marshalov
05/13/2020, 3:45 PM