How to be a good JVM-language citizen

We currently create a Gradle plugin for the Frege JVM language (https://github.com/Frege/frege-gradle-plugin) and would like to be a good citizen in the Gradle world, esp. making our compile, test, and documentation tasks play nicely with the Gradle lifecycle and conventions.

For example: how to make sure that tests are picked up from src/test/frege and be compiled to $buildDir/classes/test/frege and running the tests triggers that compilation first and the frege tests are called when all tests are run, etc.

What would be the best way to go about this? Is there any good example to copy from :slight_smile: or a documentation of such a case?

cheers Dierk

Hi Dierk,

I’d suggest looking at the Groovy or Scala plugins in core, or the https://github.com/golo-lang/gradle-golo-plugin plugin for an external example.

Integrating a new domain isn’t something that comes up all that often, so there isn’t any pre-canned documentation.

We are working on some longer term efforts to make this kind of thing much easier and more powerful. This is really a new generation of plugins though, that won’t be fully backwards compatible. I wouldn’t suggest waiting for this work.

ok, thanks!