Skip to content

Instantly share code, notes, and snippets.

@uweschaefer
Last active July 29, 2018 15:05
Show Gist options
  • Save uweschaefer/da7880a99f68a3c41b98e1a18322736c to your computer and use it in GitHub Desktop.
Save uweschaefer/da7880a99f68a3c41b98e1a18322736c to your computer and use it in GitHub Desktop.
Downloads apache maven 3.5.4 into current dir and patches it with Nailgun for faster startup (assumes to be running on ubuntu)
#!/bin/bash
MVN_VERSION=3.5.4
curl http://artfiles.org/apache.org/maven/maven-3/$MVN_VERSION/binaries/apache-maven-$MVN_VERSION-bin.tar.gz --output - |tar xz
MVN_DIR=$(pwd)/apache-maven-$MVN_VERSION
TMP=/tmp/maven-gun
rm -rf $TMP
mkdir $TMP
cd $TMP
# install and make mailgun and build snapshot jar
git clone git@github.com:uweschaefer/nailgun.git
cd nailgun
make && sudo make install
$MVN_DIR/bin/mvn clean install
cd ..
# build maven-nailgun
git clone git@github.com:uweschaefer/maven-nailgun.git
cd maven-nailgun
$MVN_DIR/bin/mvn clean package
cd ..
# patch maven
cd $MVN_DIR/bin
mv mvn mvn.org
cat mvn.org | sed "s#bin/m2.conf#bin/m2-ng.conf#" > mvn-ng-server
cat m2.conf | sed "s#org.apache.maven.cli.MavenCli#com.github.nigelzor.maven.nailgun.Server#"> m2-ng.conf
cat > mvn << EOF
#!/bin/sh
if ! nc -z localhost 2113 ; then
echo "Nailgun server not running, starting..."
nohup \$(dirname \$0)/mvn-ng-server >/dev/null 2>/dev/null &
nc -z localhost 2113 || sleep 1
if ! nc -z localhost 2113 ; then
echo "Nailgun server still not running, falling back to original"
mvn.org \$*
exit \$?
fi
fi
ng com.github.nigelzor.maven.nailgun.Client \$*
EOF
chmod +x mvn
chmod +x mvn-ng-server
cd $MVN_DIR
cp $TMP/nailgun/nailgun-server/target/nailgun-server-0.9.3-SNAPSHOT.jar lib
cp $TMP/maven-nailgun/target/maven-nailgun-1.0-SNAPSHOT.jar lib
cd $MVN_DIR/..
rm -rf $TMP
echo
echo maven $MVN_VERSION patched in $MVN_DIR
echo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment