track changes to pom files
@@ -12,7 +12,7 @@ elif [ "$1" = "full" ]; then
# Build all java modules required by C++ testing
MODE=full
elif [ "$1" = "java" ]; then
- # Build minial set of java modules, then run mvn install with arguments $2,
+ # Build minmial set of java modules, then run mvn install with arguments $2,
# $3, etc.
MODE=java
elif [ "$1" = "default" ]; then
@@ -42,48 +42,30 @@ $top/dist/getversion.pl -M $top > $top/dist/vtag.map
# It appears mvn is unable to resolve references to a plugin, if the same mvn
# program builds the plugin, e.g. getting missing class errors.
#
-# Therefore, we need to manually build all plugins first, then ensure we build
-# the rest of module without rebuilding the plugins (mvn's -rf). To be more
-# exact, mvn displays the order of modules it will build in the Reactor summary
-# - we need to build all modules up to and including all plugins in that list:
-# . (i.e. parent), annotations, scalalib, bundle-plugin, yolean, vespajlib,
-# configgen, and config-class-plugin. By using mvn -rf we can combine the
-# building of several of these into fewer commands to save time.
+# Therefore, we need to manually build all plugins first.
#
-# After bootstrapping, the following mvn command must use -rf to avoid building
-# the plugins again: The 'java' mode runs mvn install with the correct -rf. So
+# The 'java' mode runs mvn install passing any arguments. So
# to bootstrap the building of the orchestrator modules and all of its
# dependencies, do: 'bootstrap.sh java -pl orchestrator'. To build everything
# do 'bootstrap.sh java'.
-# Note: Why not just 'mvn_install -am -pl bundle-plugin'? Because on
-# Screwdriver (not locally), mvn fails to resolve bundle-plugin while parsing
-# pom files recursivelly. Therefore, shut off recursiveness -N until
-# bundle-plugin is built.
-MODULES="
- .
- annotations
- scalalib
- bundle-plugin
- "
+# must install parent pom first:
+mvn_install -N
-for module in $MODULES; do
- (cd $module && mvn_install -N)
-done
+# and build plugins first:
+(cd maven-plugins && mvn_install)
-mvn_install -am -rf configgen -pl config-class-plugin
+# now everything else should just work with normal maven dependency resolution:
case "$MODE" in
java)
- mvn_install -am -rf yolean -pl vespajlib
shift
- mvn_install -rf config-lib -am "$@"
+ mvn_install -am "$@"
;;
full)
- mvn_install -am -rf yolean -pl vespajlib
- mvn_install -am -pl filedistributionmanager,jrt,linguistics,messagebus -rf config-lib
+ mvn_install -am -pl filedistributionmanager,jrt,linguistics,messagebus
;;
default)
- mvn_install -am -pl filedistributionmanager -rf yolean
+ mvn_install -am -pl filedistributionmanager
;;
esac
