Hi, I've started Maven -> Gradle for Avatica: https://github.com/apache/calcite-avatica/pull/104 Feedback is very welcome. Note: the same is coming for Calcite, so you'd better try it sooner than later :)
Gradle project builds, loads into IDEA. It runs checkstyle/forbiddenapis. The build file automatically configures ASF copyright headers in IDEA. One of the issues is Avatica bundles third-party code in jar files. That requires to retain relevant license/notice files. The approach with Maven was "hand-bake LICENSE file manually" The approach I suggest is discover licenses from jar and pom files. Here are the relevant Gradle tasks (getLicenses and license): https://github.com/vlsi/calcite-avatica/blob/gradle/shaded/core/build.gradle.kts#L53-L68 Below you can find the result of those tasks. I have a couple of questions: 1) Is everybody OK with that format? 2) I'm not sure where to include *bundled* LICENSE/NOTICE files. Any thoughts/opinions on how third-party license texts should be included into Avatica? For instance, avatica-shaded.jar bundles slf4j-api, thus it must bundle its LICENSE file. Current Maven build just FAILS to include slf4j-api copyright header, thus it basically violates slf4j-api MIT license. I see two options: 2.1) Put license files under META-INF/LICENSES/${group}_${artifact}_${version} folders 2.2) Concatenate all the license and NOTICE files into a single META-INF/LICENSE file. .... Apache 2.0 license text .... END OF TERMS AND CONDITIONS - Software produced at the ASF which is available under AL 2.0 (as above) Apache-2.0 * commons-codec:commons-codec:1.10 * commons-logging:commons-logging:1.2 * org.apache.httpcomponents:httpclient:4.5.6 * org.apache.httpcomponents:httpcore:4.4.10 - Software produced outside the ASF which is available under AL 2.0 (as above) Apache-2.0 * com.fasterxml.jackson.core:jackson-annotations:2.9.8 * com.fasterxml.jackson.core:jackson-core:2.9.8 * com.fasterxml.jackson.core:jackson-databind:2.9.8 - Software produced outside the ASF which is available under other licenses (not AL 2.0) BSD-3-Clause * com.google.protobuf:protobuf-java:3.6.1 MIT * org.slf4j:slf4j-api:1.7.25 Vladimir