aboutsummaryrefslogtreecommitdiffstats
path: root/bootstrap.sh
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2017-05-16 15:43:41 +0200
committerArne H Juul <arnej@yahoo-inc.com>2017-05-16 15:44:47 +0200
commit4d98a026341493e06a2118afc4ec6091a676e7dd (patch)
tree73952ac473ffe1982662dbfa8655fd33f66e497c /bootstrap.sh
parent5eb06cf76922d6714004c0491cf533b177c4da44 (diff)
track changes to pom files
Diffstat (limited to 'bootstrap.sh')
-rwxr-xr-xbootstrap.sh40
1 files changed, 11 insertions, 29 deletions
diff --git a/bootstrap.sh b/bootstrap.sh
index 18e5e617632..f2c6c02d3e4 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -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