For use when you have multiple JVM providers (Apple & Oracle), you want to be able to switch between JDKs for each CLI
usejava ()
{
local sel=$1.jdk
if [ -x "/Library/Java/JavaVirtualMachines/jdk$sel/Contents/Home/bin/java" -a ! -x "/Library/Java/JavaVirtualMachines/$1/Contents/Home/bin/java" ]
then
sel=jdk$sel
fi
local base=/Library/Java/JavaVirtualMachines
if [ -x "/System/Library/Java/JavaVirtualMachines/$sel/Contents/Home/bin/java" ]
then
base=/System/Library/Java/JavaVirtualMachines
fi
if [ -z "$1" -o ! -x "$base/$sel/Contents/Home/bin/java" ]
then
local prefix="Syntax: usejava "
for i in /Library/Java/JavaVirtualMachines/* /System/Library/Java/JavaVirtualMachines/*
do
if [ -x "$i/Contents/Home/bin/java" ]
then
/bin/echo -n "$prefix$(basename $i | sed -e "s/^jdk//;s/\.jdk$//;")"
prefix=" | "
fi
done
/bin/echo ""
else
if [ -z "$JAVA_HOME" ]
then
export PATH=$base/$sel/Contents/Home/bin:$PATH
else
export PATH=$(echo $PATH|sed -e "s:$JAVA_HOME/bin:$base/$sel/Contents/Home/bin:g")
fi
export JAVA_HOME=$base/$sel/Contents/Home
echo -n -e "\033]0;$(java -version 2>&1 | sed -e "s/.*\"\(.*\)\".*/Java \1/;q")\007"
fi
}
There is additional fun to be had, given that most Java based launchers that try to fix JAVA_HOME when not set will guess the Apple JVM path… so the following Java program can help
#!/bin/bash
URL="$(svn info | sed -n -e ‘/^URL:/{s/URL: *//p}’)"
ROOT="$(svn info | sed -n -e “/^Repository Root:/{s/Repository Root: *//p}”)"
NEW_PATH="${URL#$ROOT}"
OLD_URL="$(sed -n ‘/< *scm *>/,/< */scm *>/p’ pom.xml | sed -n ‘/< *connection *>/,/< */ *connection *>/{s/.*connection > scm:svn:([^ <])[ <]./\1/p}’)"
OLD_PATH="${OLD_URL#$ROOT}"
echo “OLD URL: $OLD_URL”
echo “NEW URL: $URL”
echo “ROOT: $ROOT”
echo “OLD PATH: $OLD_PATH”
echo “NEW PATH: $NEW_PATH”
sed -i ‘/< *scm *>/,/< */scm *>/{s/’${OLD_PATH////\/}’/’${NEW_PATH////\/}’/}’ pom.xml
OK, so a while back I posted my bash script for selecting the maven version to use for the current session http://s.apache.org/FQ2
Now that I have a Mac for my full time development machine, I thought I would share my version of these functions for Mac users:
usemvn ()
{
if [ -z “$1” -o ! -x “/usr/share/java/maven-$1/bin/mvn” ]
then
local prefix=“Syntax: usemvn "
for i in /usr/share/java/maven-*
do
if [ -x “$i/bin/mvn” ]; then
Works on *nixfind ~/.m2/repository -type d -name *-SNAPSHOT -exec rm -rvf {} ;By searching for the directories we should catch the -YYYYMMDD.HHMMSS format of snapshots also
Cool post I just found:http://coldattic.info/shvedsky/pro/blogs/a-foo-walks-into-a-bar/posts/7