mirror of
https://github.com/apache/impala.git
synced 2025-12-19 09:58:28 -05:00
Maven 3.9.x offers a new dependency resolver, HttpClient, which allows downloading project dependencies in parallel. This patch bumps the Maven version installed by bootstrap_system.sh to v3.9.2, and adds the flags enabling the new resolver to download dependencies (including POM files) in parallel. Parallelism is set to 10 threads. The flags are added to a project-specific Maven setting file in the newly created java/.mvn directory. The settings file is added to the RAT exclusion list in bin/rat_exclude_files.txt. The --show-version flag is added for debugging purposes. The same flags are added to the JAMM subproject as well. The new resolver in Maven 3.9 has also changed the warning message emitted for missing component checksums, so the new warning string is added to the filter in bin/mvn-quiet.sh Unfortunately Maven 3.9 has also changed the way it responds to missing checksum files: the resolver now emits a stack trace when checksums cannot be determined, and missing checksums are not explicitly ignored. Detailed documentation for the new Maven resolver in Maven 3.9.0+ is located at: https://maven.apache.org/guides/mini/guide-resolver-transport.html resolver configuration reference: https://maven.apache.org/resolver/configuration.html Tests: - verified in a core-mode test run with Maven 3.9.2 installed - verified in a local build using an earlier version of Maven to verify that the new default setting does not cause regressions with the old dependency resolver. Change-Id: I75d05215effc724f5bd471646fb352f37443e185 Reviewed-on: http://gerrit.cloudera.org:8080/20142 Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com> Reviewed-by: Michael Smith <michael.smith@cloudera.com>
50 lines
2.0 KiB
Bash
Executable File
50 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
# Utility script that invokes maven but filters out noisy info logging
|
|
set -euo pipefail
|
|
|
|
LOG_FILE="${IMPALA_MVN_LOGS_DIR}/mvn.log"
|
|
|
|
mkdir -p "$IMPALA_MVN_LOGS_DIR"
|
|
|
|
cat << EOF | tee -a "$LOG_FILE"
|
|
========================================================================
|
|
Running mvn $IMPALA_MAVEN_OPTIONS $@
|
|
Directory $(pwd)
|
|
========================================================================
|
|
EOF
|
|
|
|
LOGGING_OPTIONS="-Dorg.slf4j.simpleLogger.showDateTime \
|
|
-Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss"
|
|
|
|
# Filter out "Checksum validation failed" messages, as they are mostly harmless and
|
|
# make it harder to search for failed tests in the console output. Limit the filtering
|
|
# to WARNING messages.
|
|
CHECKSUM_VALIDATION_FAILED_REGEX="[WARNING].*(Checksum validation failed|Could not validate integrity of download)"
|
|
|
|
# Always use maven's batch mode (-B), as it produces output that is easier to parse.
|
|
if ! mvn -B $IMPALA_MAVEN_OPTIONS $LOGGING_OPTIONS "$@" | \
|
|
tee -a "$LOG_FILE" | \
|
|
grep -E -e WARNING -e ERROR -e SUCCESS -e FAILURE -e Test -e "Found Banned" | \
|
|
grep -E -v -i "${CHECKSUM_VALIDATION_FAILED_REGEX}"; then
|
|
echo "mvn $IMPALA_MAVEN_OPTIONS $@ exited with code $?"
|
|
exit 1
|
|
fi
|