Description
Just got pinged with a question from someone about something I also noticed during 1.6.0-rc1 testing:
When building from a clean checkout (or deleting the top-level target/ directory), you'll see the calcite build trying to pull down the jars we're trying to build:
mvn package [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] Calcite [INFO] Calcite Avatica [INFO] Calcite Avatica Server [INFO] Calcite Linq4j [INFO] Calcite Core [INFO] Calcite Examples [INFO] Calcite Example CSV [INFO] Calcite Example Function [INFO] Calcite MongoDB [INFO] Calcite Piglet [INFO] Calcite Plus [INFO] Calcite Spark [INFO] Calcite Splunk [INFO] Calcite Ubenchmark [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Calcite 1.7.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-checkstyle-plugin:2.12.1:check (validate) @ calcite --- [INFO] [INFO] --- git-commit-id-plugin:2.1.9:revision (default) @ calcite --- [INFO] [INFO] --- maven-remote-resources-plugin:1.5:process (default) @ calcite --- [INFO] [INFO] --- maven-remote-resources-plugin:1.5:process (root-resources) @ calcite --- Downloading: https://repository.apache.org/content/repositories/snapshots/org/apache/calcite/calcite-avatica/1.7.0-SNAPSHOT/maven-metadata.xml Downloading: http://conjars.org/repo/org/apache/calcite/calcite-avatica/1.7.0-SNAPSHOT/maven-metadata.xml Downloading: http://repository.apache.org/snapshots/org/apache/calcite/calcite-avatica/1.7.0-SNAPSHOT/maven-metadata.xml Downloading: https://repository.apache.org/content/repositories/snapshots/org/apache/calcite/calcite-avatica/1.7.0-SNAPSHOT/calcite-avatica-1.7.0-SNAPSHOT.jar Downloading: http://conjars.org/repo/org/apache/calcite/calcite-avatica/1.7.0-SNAPSHOT/calcite-avatica-1.7.0-SNAPSHOT.jar Downloading: http://repository.apache.org/snapshots/org/apache/calcite/calcite-avatica/1.7.0-SNAPSHOT/calcite-avatica-1.7.0-SNAPSHOT.jar Downloading: http://repository.apache.org/snapshots/org/apache/calcite/calcite-linq4j/1.7.0-SNAPSHOT/maven-metadata.xml Downloading: http://conjars.org/repo/org/apache/calcite/calcite-linq4j/1.7.0-SNAPSHOT/maven-metadata.xml Downloading: https://repository.apache.org/content/repositories/snapshots/org/apache/calcite/calcite-linq4j/1.7.0-SNAPSHOT/maven-metadata.xml Downloading: https://repository.apache.org/content/repositories/snapshots/org/apache/calcite/calcite-linq4j/1.7.0-SNAPSHOT/calcite-linq4j-1.7.0-SNAPSHOT.jar Downloading: http://conjars.org/repo/org/apache/calcite/calcite-linq4j/1.7.0-SNAPSHOT/calcite-linq4j-1.7.0-SNAPSHOT.jar Downloading: http://repository.apache.org/snapshots/org/apache/calcite/calcite-linq4j/1.7.0-SNAPSHOT/calcite-linq4j-1.7.0-SNAPSHOT.jar Downloading: https://repository.apache.org/content/repositories/snapshots/org/apache/calcite/calcite-core/1.7.0-SNAPSHOT/maven-metadata.xml Downloading: http://conjars.org/repo/org/apache/calcite/calcite-core/1.7.0-SNAPSHOT/maven-metadata.xml Downloading: http://repository.apache.org/snapshots/org/apache/calcite/calcite-core/1.7.0-SNAPSHOT/maven-metadata.xml Downloading: https://repository.apache.org/content/repositories/snapshots/org/apache/calcite/calcite-core/1.7.0-SNAPSHOT/calcite-core-1.7.0-SNAPSHOT.jar Downloading: http://conjars.org/repo/org/apache/calcite/calcite-core/1.7.0-SNAPSHOT/calcite-core-1.7.0-SNAPSHOT.jar Downloading: http://repository.apache.org/snapshots/org/apache/calcite/calcite-core/1.7.0-SNAPSHOT/calcite-core-1.7.0-SNAPSHOT.jar
It looks like this was introduced in CALCITE-741. The intent of the change isn't necesarily wrong, but I believe this is just trying to work against Maven.
I think the change to make for Maven to work as it wants is to make a new module dedicated to creating the assembly. That module will depend on the other modules which should properly create the transitive dependency list.
It's also worth noting that the maven-remote-resources-plugin configuration littered everywhere is duplicative (this is already handled in the Apache parent pom).