alias mvn-updates='mvn versions:display-dependency-updates'
#realpath replacement for iOS - not always present
function _realpath {
if[[ -f "$1"]]
then
# file *must* exist
ifcd"$(echo"${1%/*}")"&>/dev/null
then
# file *may* not be local
# exception is ./file.ext
# try 'cd .; cd -;' *works!*
localtmppwd="$PWD"
cd - &>/dev/null
else
# file *must* be local
localtmppwd="$PWD"
fi
else
# file *cannot* exist
return1# failure
fi
# reassemble realpath
echo"$tmppwd"/"${1##*/}"
return1#success
}
function __pom_hierarchy {
localfile=`_realpath "pom.xml"`
POM_HIERARCHY+=("~/.m2/settings.xml")
POM_HIERARCHY+=("$file")
while[ -n "$file"]&& grep -q "<parent>"$file;do
##look for a new relativePath for parent pom.xml
localnew_file=`grep -e "<relativePath>.*</relativePath>"$file| sed 's/.*<relativePath>//'| sed 's/<\/relativePath>.*//g'`
## <parent> is present but not defined. Asume ../pom.xml
if[ -z "$new_file"];then
new_file="../pom.xml"
fi
## if file exists continue else break
new_pom=`_realpath "${file%/*}/$new_file"`
if[ -n "$new_pom"];then
file=$new_pom
else
break
fi
POM_HIERARCHY+=("$file")
done
}
function listMavenCompletions {
POM_HIERARCHY=()
__pom_hierarchy
profiles=()
#current pom profiles
for item in ${POM_HIERARCHY[*]};do
profiles=($profiles`[ -e $item]&& cat $item| sed 's/<!--.*-->//'| sed '/<!--/,/-->/d'| grep -e "<profile>" -A 1| grep -e "<id>.*</id>"| sed 's?.*<id>\(.*\)<\/id>.*?-P\1?'`)
done
reply=(
# common lifecycle
clean initialize process-resources compile process-test-resources test-compile test package verify install deploy site
@ -278,7 +336,12 @@ function listMavenCompletions {
cobertura:cobertura
-Dtest=$(if[ -d ./src/test/java ];then find ./src/test/java -type f -name '*.java'| grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?';fi)
-Dit.test=$(if[ -d ./src/test/java ];then find ./src/test/java -type f -name '*.java'| grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dit.test=\1?';fi)