maven多模块项目的部署(启动是通过运行主main方法):
1 在linux上直接建立文件夹,如mkdir project
2 之后cd project,同理用mkdir命令建立bin、conf、lib和run目录(是bin启动文件目录中引用的),对于lib中的jar包,对于jar包,包括项目生成的jar包,还包括该项目运行需要的其他jar包(依赖包)。
对于项目生成的jar包,可以通过在eclipse中,项目右键-Run as build-》Goals中输入package即可,生成很多Jar包。
3 可以把项目中的配置文件,放到conf中,便于管理
4 运行的话,在bin中书写运行文件,命名run.sh和projectRun文件,run.sh为具体的启动文件,projectRun启动run.sh文件。
对于run.sh如下:
#!/bin/sh
APP_HOME=/project
CLASSPATH=$APP_HOME/conf
#项目生成的jar包
CLASSPATH=$CLASSPATH:$APP_HOME/lib/dev-server-0.1.jar
CLASSPATH=$CLASSPATH:$APP_HOME/lib/dev-svn-0.1.jar
#下面为运行上面jar需要的jar包
CLASSPATH=$CLASSPATH:$APP_HOME/lib/core2-2.4.8.jar
CLASSPATH=$CLASSPATH:$APP_HOME/lib/activation-1.1.jar
CLASSPATH=$CLASSPATH:$APP_HOME/lib/unboundid-ldapsdk-3.2.0.jar
MAINCLASS=con.dev.DevServer
cd $APP_HOME
exec /usr/bin/java -classpath "$CLASSPATH" -Dfile.encoding=utf-8 $MAINCLASS
对于projectRun写成对应的启动函数,包括start stop status restart等等,具体展示如下:
#!/bin/sh
### BEGIN INIT INFO
# Provides: project-service
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start or stop the koudai push service.
### END INIT INFO
alias chkconfig=sysv-rc-conf
APP_NAME="project-service"
WORK_DIR="/project"
APP_ID="project-server"
BIN=$WORK_DIR/bin/run.sh
pidfile=$WORK_DIR/run/$APP_ID.pid
. /lib/lsb/init-functions
case "$1" in
start)
pidofproc -p $pidfile $BIN >/dev/null
if [ "$?" = "0" ]; then
log_failure_msg "$APP_NAME is already started"
exit 1
fi
log_begin_msg "Starting $APP_NAME"
start-stop-daemon --quiet -m -b -d $WORK_DIR -p $pidfile --start --exec $BIN
log_end_msg $?
;;
stop)
log_begin_msg "Stopping $APP_NAME"
start-stop-daemon --stop -p $pidfile
log_end_msg $?
;;
restart)
log_begin_msg "Restarting $APP_NAME"
start-stop-daemon --stop --quiet --oknodo -p $pidfile
sleep 1
start-stop-daemon --quiet -m -b -d $WORK_DIR -p $pidfile --start --exec $BIN
log_end_msg $?
;;
status)
status_of_proc -p $pidfile $BIN "$APP_NAME" && exit 0 || exit $?
;;
install)
cp $0 /etc/init.d/$APP_ID
chkconfig --add $APP_ID
;;
uninstall)
rm /etc/init.d/$APP_ID
chkconfig --del $APP_ID
;;
*)
echo "Usage: $APP_ID {start|stop|restart|status}" >&2
exit 1
;;
esac
exit 0
自启动:
ln -sf /dev/dev-sync/bin/dev-sync /etc/init.d/dev-sync-server 把dev-sync添加到/etc/init.d目录并命名为dev-sync-server 服务
update-rc.d dev-sync-server defaults dev-sync-server 为服务名
sysv-rc-conf