this post was submitted on 27 Jan 2024
7 points (100.0% liked)
Kotlin
671 readers
2 users here now
Kotlin is a statically typed programming language for the JVM, Android, JavaScript, and native.
Subreddit rules:
- Be civil
- No spam
- Stay on-topic
- No fluff
Resources:
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I'm not sure what you mean with "needs a buildscript classpath". Are you trying to use a dependency in your convention plugin? If so you should add it to build.gradle in the buildSrc directory.
An example of what you are trying to do would help a lot.
Hi. Thank you for responding. I basically want to add the jib extension mentioned here (code snippet provided). https://github.com/GoogleContainerTools/jib-extensions/tree/master/first-party/jib-ownership-extension-gradle
Instead of applying it directly to the project, I want to add all this config to a convention plugin and add that to the project. Hoping to reuse the config across many projects.
I threw this together really quick: https://github.com/foip/jib-convention-test . The crux is adding the jib plugin and the extension to buildSrc/build.gradle.kts. I don't know if this matches your project setup, so let me know if this does or doesn't work for you (:
Edit:
To put the answer to the original question in more general terms for anyone who stumbles upon this thread: In this case the jib-gradle-plugin is applied as a plugin in the root
build.gradle.kts
, but it needs extra runtime dependencies for its extensions. You normally would declare those dependencies like so:When you want to write a convention plugin to wrap that configuration, basically everything that went inside that buildscript block now goes into
buildSrc/build.gradle.kts
:That goes for other dependencies as well, for example if you want to use a library to write a custom task, and then you refactor that task into a plugin in
buildSrc
.The extension seems to be finally applied. Thank you so much!