@@ -36,3 +36,51 @@ retry_with_backoff 3 10 \
3636 -Dclirr.skip=true
3737
3838mvn -B dependency:analyze -DfailOnWarning=true
39+
40+ echo " ****************** DEPENDENCY LIST COMPLETENESS CHECK *******************"
41+ # # Run dependency list completeness check
42+ function completenessCheck() {
43+ # Output dep list with compile scope generated using the original pom
44+ msg " Generating dependency list using original pom..."
45+ mvn dependency:list -f pom.xml -Dsort=true | grep ' \[INFO] .*:.*:.*:.*:.*' | grep -v ' :test$' > .org-list.txt
46+
47+ # Output dep list generated using the flattened pom (test scope deps are ommitted)
48+ msg " Generating dependency list using flattened pom..."
49+ mvn dependency:list -f .flattened-pom.xml -Dsort=true | grep ' \[INFO] .*:.*:.*:.*:.*' > .new-list.txt
50+
51+ # Compare two dependency lists
52+ msg " Comparing dependency lists..."
53+ diff .org-list.txt .new-list.txt > .diff.txt
54+ if [[ $? == 0 ]]
55+ then
56+ msg " Success. No diff!"
57+ else
58+ msg " Diff found. See below: "
59+ msg " You can also check .diff.txt file located in $1 ."
60+ cat .diff.txt
61+ return 1
62+ fi
63+ }
64+
65+ # Allow failures to continue running the script
66+ set +e
67+
68+ error_count=0
69+ for path in $( find -name " .flattened-pom.xml" )
70+ do
71+ # Check flattened pom in each dir that contains it for completeness
72+ dir=$( dirname " $path " )
73+ pushd " $dir "
74+ completenessCheck " $dir "
75+ error_count=$(( $error_count + $? ))
76+ popd
77+ done
78+
79+ if [[ $error_count == 0 ]]
80+ then
81+ msg " All checks passed."
82+ exit 0
83+ else
84+ msg " Errors found. See log statements above."
85+ exit 1
86+ fi
0 commit comments