I am trying to create gradle plugin in clojure. Mainly because i can and secondly because no normal clojure gradle build plugin exists.
For first try i am trying to create simply greeter plugin. Right now i am stuck at gradle api dependency resolution.
My problem is: I am unable to find gradle-model-core jar. I know it exists in my local gradle distribution (2.2.1 it is), but i am unable to found it on the net in maven or some other form.
Is it exists on the net or it should be bundled from local gradle distribution?
At the moment we do not publish the Gradle model JAR to a public repository. The only way you can reference these classes at the moment, is by using ‘gradleApi()’ as described by Lance.
Thank you for help and suggestions.
Unfortunately i am unable to use gradleApi() shortcut, because i am using leiningen to build plugin. So i will use local jars from gradle distribution for now.
The jsonschema2pojo and flyway plugins use a Maven build. When I contributed the plugins at first I had Maven delegate to Gradle for the build, but both projects insisted that the build be performed exclusively by Maven so the unpublished dependencies are provided. The Flyway project later went back to having Gradle do the build to avoid some intermittent build problems during testing. The same challenge occurred when trying to contribute the jOOQ plugin, but eventually a Gradleware developer took that over instead.
Personally I’d just delegate to Gradle for the build through the outer build system. I’d make the test, coverage, etc. aspects integrate so that the consumer (e.g. CI) wouldn’t be aware of the build magic used to generate them. It means learning multiple build tools, but for offering plugins that’s an advantage. When contributing plugins for the primary project to own, its been frustrating that the maintainers use “I don’t know Gradle” as an excuse for not fixing issues as new features are added to their libraries.
Hey Benjamin, In the future we want to make it much easier to write a plugin for gradle and add more support for that to the gradle build tool itself. In the long term, gradle won’t support building gradle plugins with other build-tools than gradle and won’t put any effort into this. We just don’t have the bandwith for this at the moment and our plans for future plugin development are more ambitious than just creating a jar.