com-lihaoyi / mill

Mill is a fast JVM build tool that supports Java, Scala and Kotlin. 2-4x faster than Gradle and 4-10x faster than Maven for common workflows, Mill aims to make your project’s build process performant, maintainable, and flexible
https://mill-build.org/
MIT License
2.24k stars 358 forks source link

Add Mill AnimalSniffer Plugin (500USD Bounty) #3889

Open lihaoyi opened 1 month ago

lihaoyi commented 1 month ago

From the maintainer Li Haoyi: I'm putting a 500USD bounty on this issue, payable by bank transfer on a merged PR implementing this.


AnimalSniffer is used by many of our third-party example builds: Netty, Mockito, and now Arrow-Kt. We should have official support in Mill for a SpotlessModule to allow usage of Spotless in JavaModule, ScalaModule, and KotlinModule

Should be similar in style of PalantirFormatModule, ScalafmtModule, ErrorProneModule, etc.

lefou commented 1 month ago

Is the AnimalSniffer plugin still relevant for Java 17+? I know it provided support to dedect use of too new API back in the days before javac had the --release option. I used it myself often in combination with retrolambda to write Java 8 lambdas but generate Java 5+ bytecode. But does it provide any value today? E.g. there is no org.codehaus.mojo.signature:java21 artifact on Maven central.