Author: tchemit Date: 2008-01-20 16:04:13 +0000 (Sun, 20 Jan 2008) New Revision: 287 Modified: trunk/simexplorer-is-swing/go.sh Log: am?\195?\169lioration du script de d?\195?\169marrage : un seul appel ?\195?\160 maven par d?\195?\169faut on utilise les classes et non plus le jar (pour utiliser le jar j-|--jar) pour cleaner -k|--clean pour forcer la compilation -c|--compile pour choisir le log maven -o||-output (par default maven.log) pour forcer le mode non offline -u|--upline Modified: trunk/simexplorer-is-swing/go.sh =================================================================== --- trunk/simexplorer-is-swing/go.sh 2008-01-20 14:34:29 UTC (rev 286) +++ trunk/simexplorer-is-swing/go.sh 2008-01-20 16:04:13 UTC (rev 287) @@ -1,10 +1,12 @@ #!/bin/sh -#JAVA="/opt/repository/jdk1.6.0/bin/java -splash:src/resources/images/splash2.jpg" -#JAVA="java -Djava.library.path=lib -splash:src/resources/images/splash2.jpg" -JAVA=java -#TEMP=`getopt -o cdna:: --long clean,debug,nosuspend:: \ +############################################################################### +####### parse arguments ####################################################### +############################################################################### + +#TODO Generate via commadline:generateGo +#TEMP=`getopt -o kcjuodn:: --long clean,compile,jar,upline,debug,nosuspend,output:: \ # -n 'go.sh' -- "$@"` #if [ $? != 0 ] ; then # echo "bag argument" @@ -13,11 +15,27 @@ #eval set -- "$TEMP" CLEAN="" +COMPILE="" +DEV="classes" +OFF_LINE="-o " +MOUTPUT="maven.log" while true; do case "$1" in - -c|--clean) + -k|--clean) CLEAN="clean" shift;; + -c|--compile) + COMPILE="compile" + shift;; + -j|--jar) + DEV="jar" + shift;; + -u|--upline) + OFF_LINE="" + shift;; + -o|--output) + MOUTPUT="$1" + shift;; -d|--debug) echo "Debug mode" #DEBUG="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=38000,server=y" @@ -29,17 +47,26 @@ shift ;; \-\-) shift ; break ;; *) break; -# *) echo "Bad argument $1!" ; exit 1 ;; esac done +############################################################################### +####### init variables ######################################################## +############################################################################### + +#JAVA="/opt/repository/jdk1.6.0/bin/java -splash:src/resources/images/splash2.jpg" +#JAVA="java -Djava.library.path=lib -splash:src/resources/images/splash2.jpg" + +JAVA=java + dir=$(dirname $0) cd $dir +# Warning, pom.xml must have xmlns info on his root node! VER=$(xmlstarlet sel -N "p=http://maven.apache.org/POM/4.0.0" -t -v "/p:project/p:version" pom.xml) + RELEASE="simexplorer-is-swing-$VER" MAIN_CLASS="fr.cemagref.simexplorer.is.ui.SimExplorer" - MX=512M rep=`dirname $0` @@ -47,27 +74,52 @@ cd $rep -if [ "$CLEAN" = "clean" ]; then - echo "mvn clean" - mvn clean > /dev/null +############################################################################### +####### build required maven goals ############################################ +############################################################################### +MVN_ACTION= +if [ "$CLEAN" = "clean" ]; then + MVN_ACTION="clean dependency:copy-dependencies compile" + if [ "$DEV" = "jar" ]; then + MVN_ACTION="$MVN_ACTION jar:jar" + fi +else + if [ ! -d $rep/target/dependency ]; then + MVN_ACTION="$MVN_ACTION dependency:copy-dependencies" + fi + if [ ! -d $rep/target/classes -o "$COMPILE" = "compile" ]; then + MVN_ACTION="$MVN_ACTION compile" + fi + if [ "$DEV" = "jar" -a ! -f $rep/target/$RELEASE.jar ]; then + MVN_ACTION="$MVN_ACTION jar:jar" + fi fi -if [ ! -f $rep/target/$RELEASE.jar ]; then - echo "mvn jar:jar" - mvn -o compile jar:jar > compile.log +############################################################################### +####### launch maven if required ############################################## +############################################################################### +if [ ! "$MVN_ACTION" = "" ]; then + action="mvn $MVN_ACTION $OFF_LINE > $MOUTPUT" + echo "$action" + eval "$action" + echo "mvn done." fi -if [ ! -d $rep/target/dependency ]; then - echo "mvn dependency:copy-dependencies" - mvn -o dependency:copy-dependencies > /dev/null +############################################################################### +####### build classpath (by default use classes, not jar (one less goal:)) #### +############################################################################### +CL=$rep/target/classes +if [ "$DEV" = "jar" ]; then + CL=$rep/target/$RELEASE.jar fi - -# build classpath -CL=$rep/target/$RELEASE.jar +echo "use CL $CL" +# add dependencies to class path for f in $rep/target/dependency/*.jar; do CL=$CL:$f done -# launch appli -echo "java $RELEASE!$MAIN_CLASS $@" -$JAVA $DEBUG -Xmx$MX -Xms$MX -classpath $CL $LOG $JVM_OPT $MAIN_CLASS $@ \ No newline at end of file +############################################################################### +####### launch appli ########################################################## +############################################################################### +echo "java $MAIN_CLASS $@" +$JAVA $DEBUG -Xmx$MX -Xms$MX -classpath $CL $JVM_OPT $MAIN_CLASS $@ \ No newline at end of file