首页 > 代码库 > 线上JAVA项目的目录结构分析,以及启动停止脚本
线上JAVA项目的目录结构分析,以及启动停止脚本
一般来说,JAVA项目最终上线都是以JAR或者WAR的形式发布
WAR的话就是WEB工程,JAR的话就是普通JAVA工程,可以直接启动,无需任何容器的
一般比较的固定的目录结构:
项目名称demo
demo/bin这里一般是启动和停止脚本 start.sh stop.sh
demo/conf 系统配置文件
demo/base war工程的话,将war包放此
demo/***
demo/lib war工程的话,不需要,因为war工程通过mvn构建,引用的jar包都会打在war包里,如果是jar工程的话,需要此目录存放你的jar包(如果也通过mvn打在一起也可以,多的话)
demo/logs 这是必须的,存放log的位置
如何配置log??
<appender name="APP-LOG-FILE" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value=http://www.mamicode.com/"${log.dir.path}/normandy.log" />><pre name="code" class="html"><logger name="app-log" additivity="false"> <level value=http://www.mamicode.com/"${log.level}" />>这样的话,当你JAVA类里get以上的logger name就可以将log写到demo-log文件里了
重点分析下demo/bin目录下脚本编写:
env.sh
export JAVA_HOME=/usr/*/jdk export NGINX_HOME=/usr/*/nginx export JETTY_HOME=/usr/*/jetty export JETTY_PORT=****** export APP_INSTALL_HOME=**** export APP_LOG_DIR_PATH=**** export LANG=zh_CN.UTF-8
以上是一个示例,包括了JAVA,NGGNX,JETTY,项目目录,log目录等等一些变量的配置start.sh
source ./env.sh JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Dcom.sun.management.jmxremote.port=7788 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false " JAVA_OPTS=" -server -Xmx512m -Xms512m -Xss256K -XX:PermSize=128M -XX:MaxPermSize=128M -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseCompressedOops -XX:CMSInitiatingOccupancyFraction=70 -XX:+HeapDumpOnOutOfMemoryError -XX:SurvivorRatio=8 " JAVA_OPTS=${JAVA_OPTS}" *** -Dlog_path="${LOG_PATH} $SYS_ECHO "starting......,please wait ..." ${JAVA_HOME}/bin/java ${JAVA_DEBUG_OPTS} ${JAVA_OPTS} -jar ${APP_PATH}/*.jar ******
这里的JAVA——OPTS是用来配置一些java启动参数,以及项目的系统参数-D 参数通过System.getProperty来获取stop.sh
pids=`${JAVA_HOME}/bin/jps | grep **|awk '{print $1}'` for pid in $pids do kill -9 $pid done }循环将启动的该**进程全部杀死,即停止如果是war包工程的话
ps -ef | grep 容器 | awk ‘{pring $1}‘
有tomcat容器,jetty容器等等
线上JAVA项目的目录结构分析,以及启动停止脚本
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。