Maven Plugin used to download all Dependencies and Plugins required in a Maven build, so the build can be run without an internet connection afterwards.
I ran ./mvnw de.qaware.maven:go-offline-maven-plugin:resolve-dependencies on https://github.com/trinodb/trino and found that if the root POM defines some dependency versions for use by all submodules, while a submodule overrides those versions in it's own POM, only one version (the root one) would get downloaded.
$ mv ~/.m2/repository ~/.m2/repository.old
$ ./mvnw de.qaware.maven:go-offline-maven-plugin:resolve-dependencies
... Wait for download ...
$ ./mvnw --offline clean install -DskipTests
...
[ERROR] Failed to execute goal on project trino-pinot: Could not resolve dependencies for project io.trino:trino-pinot:trino-plugin:406-SNAPSHOT: The following artifacts could not be resolved: io.confluent:kafka-avro-serializer:jar:5.5.2, io.confluent:kafka-schema-registry-client:jar:5.5.2, io.confluent:common-config:jar:5.5.2, io.confluent:common-utils:jar:5.5.2, io.confluent:kafka-schema-serializer:jar:5.5.2: Cannot access starburstdata.releases (https://maven.starburstdata.net/starburstdata-artifacts/releases) in offline mode and the artifact io.confluent:kafka-avro-serializer:jar:5.5.2 has not been downloaded from it before. -> [Help 1]
I ran
./mvnw de.qaware.maven:go-offline-maven-plugin:resolve-dependencies
on https://github.com/trinodb/trino and found that if the root POM defines some dependency versions for use by all submodules, while a submodule overrides those versions in it's own POM, only one version (the root one) would get downloaded.I believe this is very similar to https://github.com/qaware/go-offline-maven-plugin/issues/23 so I left a comment there as well.