The io.spine.gradle.publish.SpinePublishing extension class (please see it under buildSrc) is overloaded with functionality.
It does both extension jobs, like managing data) and plugin jobs, like creating publication handlers, managing task depenendicies.
The SpinePublishing.kt is already 536 lines long, and it's hard to understand. For example, we've had hard time finding the cause of duplicated publishing tasks when fixing publishing in tool-base.
We should revisit this publishing functionality, which took the current form during the course of development of the Spine SDK and adding and revisiting things in Gradle.
The most obvious course seen at the time of writing is having a plugin class residing under buildSrc which would be applied via its class to the root project, AND to subprojects, should they need custom publishing.
The
io.spine.gradle.publish.SpinePublishingextension class (please see it underbuildSrc) is overloaded with functionality.It does both extension jobs, like managing data) and plugin jobs, like creating publication handlers, managing task depenendicies.
The
SpinePublishing.ktis already 536 lines long, and it's hard to understand. For example, we've had hard time finding the cause of duplicated publishing tasks when fixing publishing intool-base.We should revisit this publishing functionality, which took the current form during the course of development of the Spine SDK and adding and revisiting things in Gradle.
The most obvious course seen at the time of writing is having a plugin class residing under
buildSrcwhich would be applied via its class to the root project, AND to subprojects, should they need custom publishing.