使用Maven构建Dubbo服务的可运行jar包 支持优雅关机
2017-05-18 11:51
615 查看
1.Dubbo项目结构如图
2. pom文件配置
#注意:此处只展示打包所需的配置<build> <finalName>dubbo-user-service</finalName> <!--包名称 --> <resources> <resource> <targetPath>${project.build.directory}/classes</targetPath> <directory>src/main/resources</directory> <filtering>true</filtering> <includes><!-- 配置文件信息 --> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> <resource> <targetPath>${project.build.directory}/classes/META-INF/spring</targetPath> <directory>src/main/resources/spring</directory> <filtering>true</filtering> <includes><!--com.alibaba.dubbo.container.Main做为启动入口需要将spring配置文件拷贝到/classes/META-INF/spring目录下, --> <include>*.xml</include> </includes> </resource> </resources> <pluginManagement> <plugins> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <versionRange>[2.0,)</versionRange> <goals> <goal>copy-dependencies</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 --> <plugin> 4000 <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.5</version> <configuration> <classesDirectory>target/classes/</classesDirectory> <archive> <manifest> <mainClass>com.alibaba.dubbo.container.Main</mainClass> <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 --> <useUniqueVersions>false</useUniqueVersions> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> <manifestEntries> <Class-Path>.</Class-Path> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <type>jar</type> <includeTypes>jar</includeTypes> <useUniqueVersions>false</useUniqueVersions> <outputDirectory> ${project.build.directory}/lib </outputDirectory> </configuration> </execution> </executions> </plugin> </plugins> </build>
3.生成可执行jar文件
生成jar包,项目右键:Run As –> Maven install拷贝jar包及lib运行库到服务器上: dubbo-user-service.jar && lib
4.创建可运行脚本并配置成服务
目录结构(目录及文件名最好统一,便于脚本维护)创建shell脚本:vim dubbo-user-service.sh
#!/bin/sh # chkconfig: 2345 20 80 ## 配置jdk路径 export JAVA_HOME=/opt/jdk export JRE_HOME=$JAVA_HOME/jre ## service name APP_NAME=dubbo-user-service SERVICE_DIR=/opt/$APP_NAME SERVICE_NAME=$APP_NAME JAR_NAME=$SERVICE_NAME\.jar PID=$SERVICE_NAME\.pid cd $SERVICE_DIR case "$1" in start) nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME >/dev/null 2>&1 & echo $! > $SERVICE_DIR/$PID echo "=== start $SERVICE_NAME" ;; stop) kill `cat $SERVICE_DIR/$PID` rm -rf $SERVICE_DIR/$PID echo "=== stop $SERVICE_NAME" sleep 5 ## ## edu-service-aa.jar ## edu-service-aa-bb.jar P_ID=`ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk '{print $2}'` if [ "$P_ID" == "" ]; then echo "=== $SERVICE_NAME process not exists or stop success" else echo "=== $SERVICE_NAME process pid is:$P_ID" echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID" kill -9 $P_ID fi ;; restart) $0 stop sleep 2 $0 start echo "=== restart $SERVICE_NAME" ;; *) ## restart $0 stop sleep 2 $0 start ;; esac exit 0
软链到init.d目录下
# cd /etc/init.d/ # ln -s /opt/dubbo-user-service/dubbo-user-service.sh /etc/init.d/dubbo-user-service
设置执行权限
# chmod a+x ./dubbo-user-service
注册成服务
# chkconfig --add dubbo-user-service # chkconfig --list #可查看配置的服务
设置开机启动
# chkconfig dubbo-user-service on
启动
# service dubbo-user-service start
停止
# service dubbo-user-service stop
重启
# service dubbo-user-service restart
相关文章推荐
- Dubbo服务的运行方式(使用maven构建dubbo可执行的jar包)
- 分布式服务框架dubbo-使用Maven构建Dubbo服务的可执行jar包(4)
- 使用Maven构建Dubbo服务的可运行jar包
- 跟我学习dubbo-使用Maven构建Dubbo服务的可执行jar包(4)
- Dubbo之使用Maven构建服务的可执行jar包
- Dubbo基础篇_04_使用Maven构建Dubbo服务可执行jar包
- 使用maven 构建dubbo服务的可执行jar包
- Dubbo-使用Maven构建Dubbo服务的可执行jar包
- 使用maven构建Dubbo服务的可执行的jar包
- SpringBank 开发日志 使用maven构建dubbo服务的可执行jar包
- 菜鸟的DUBBO进击之路(六):使用maven构建dubbo服务的可执行jar包
- 使用maven构建dubbo服务的可执行jar包
- 学习dubbo(五):使用maven构建dubbo服务的可执行的jar
- 使用Maven构建dubbo服务可执行的jar包--待完善
- Dubbo基础编二_使用Maven构建Dubbo服务可执行jar包
- 跟我学习dubbo-使用Maven构建Dubbo服务的可执行jar包(4)
- 使用maven构建dubbo服务的可执行jar包
- eclipse 使用maven 构建springboot+dubbo+zookeeper 构建soa服务(面向服务架构)
- 基于maven构建dubbo服务的可执行jar包
- 使用Maven构建dubbo服务可执行的jar包