Timur Abdyraev
06/27/2024, 7:06 AMgradlePlugin {
website.set("<https://github.com/Timbermir/clean-wizard>")
vcsUrl.set("<https://github.com/Timbermir/clean-wizard.git>")
plugins {
libs.plugins.cleanwizard.apply {
val pluginConfigVersions = pluginConfig.versions.cleanwizard
register(core.pluginId) {
id = core.pluginId
implementationClass = pluginConfigVersions.root.implementation.get()
displayName = "Clean Wizard Root Project Plugin"
description = "This plugin is required for advanced configuration"
tags.set(
listOf(
"kotlin",
"ksp",
"kotlin-symbol-processing",
"android",
"clean-architecture",
"domain-model",
"ui-model",
"dto-entity-mapper",
)
)
}
register(multimodule.pluginId) {
id = multimodule.pluginId
implementationClass = pluginConfigVersions.multimodule.implementation.get()
displayName = "Clean Wizard Multi Module Plugin"
description = "This plugins is required for across module generation"
tags.set(
listOf(
"kotlin",
"ksp",
"kotlin-symbol-processing",
"android",
"clean-architecture",
"domain-model",
"ui-model",
"dto-entity-mapper",
)
)
}
register(internal.kotlin.pluginId) {
id = internal.kotlin.pluginId
implementationClass = pluginConfigVersions.kotlin.implementation.get()
}
register(internal.codegen.pluginId) {
id = internal.codegen.pluginId
implementationClass = pluginConfigVersions.codegen.implementation.get()
}
register(internal.processor.pluginId) {
id = internal.processor.pluginId
implementationClass = pluginConfigVersions.processor.implementation.get()
}
register(internal.visitor.pluginId) {
id = internal.visitor.pluginId
implementationClass = pluginConfigVersions.visitor.implementation.get()
}
register(internal.publish.pluginId) {
id = internal.publish.pluginId
implementationClass = pluginConfigVersions.publish.implementation.get()
}
}
}
}
So I want to publish plugins that doesn't have internal in their id
If it is not possible to do so, how can I publish only certain plugins using default maven-publish ?Vampire
06/27/2024, 7:49 AMmaven-publish would be no problem as you get publish tasks for each plugin separately. But I guess the publishPlugins task is the one sending the metadata to the portal even if maven-publish is used for the artifact uploading.
Besides that, if you have all plugins in one project, all their code is in one code artifact. You just additionally have one marker artifact per plugin id so that the plugin id can be resolved to coordinates by naming convention.
So even if you are able to only publish a part of the plugins, it would only leave out the marker artifacts and thus more hide the internal plugins a tiny bit, but not making them inaccessible.
I think you should split your plugins into at least two projects (can be in the same build), then you can easily control what gets published where.Thomas Broyer
06/27/2024, 8:16 AMThomas Broyer
06/27/2024, 8:18 AMVampire
06/27/2024, 10:23 AMTimur Abdyraev
06/27/2024, 1:15 PM