使用Maven构建Dubbo服务的可运行jar包 支持优雅关机
来源:互联网 发布:淘宝食品qs认证 编辑:程序博客网 时间:2024/06/14 07:18
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> <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/jdkexport JRE_HOME=$JAVA_HOME/jre## service nameAPP_NAME=dubbo-user-serviceSERVICE_DIR=/opt/$APP_NAMESERVICE_NAME=$APP_NAMEJAR_NAME=$SERVICE_NAME\.jarPID=$SERVICE_NAME\.pidcd $SERVICE_DIRcase "$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 ;;esacexit 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
阅读全文
0 0
- 使用Maven构建Dubbo服务的可运行jar包 支持优雅关机
- Dubbo服务的运行方式(使用maven构建dubbo可执行的jar包)
- 使用maven构建dubbo服务jar包
- 使用maven构建Dubbo服务的可执行的jar包
- Dubbo之使用Maven构建服务的可执行jar包
- 使用maven构建dubbo服务的可执行jar包
- 跟我学习dubbo-使用Maven构建Dubbo服务的可执行jar包(4)
- maven构建dubbo服务的可执行jar包
- 使用Maven构建dubbo服务可执行的jar包--待完善
- Maven构建可运行的jar包出错解决办法
- Dubbo基础篇_04_使用Maven构建Dubbo服务可执行jar包
- dubbo-3 使用maven构建dubbo可执行jar包
- maven工程构建dubbo服务jar包示例
- maven打可运行的jar包
- dubbo(二)普通项目dubbo服务化改造+provider构建为jar包运行
- eclipse+maven构建可独立运行的jar
- gradle + idea 构建 可运行的jar包
- Maven构建可分发Jar包
- Caffe 与 Caffe2
- linkedBlockingQueue实现事件阻塞队列
- 拉格朗日对偶
- Learning Spark笔记8-数据分区(高级)
- Linux
- 使用Maven构建Dubbo服务的可运行jar包 支持优雅关机
- 在Actor蓝图里面响应按键输入
- iOS: pch 如何添加项目中
- apache
- Java MongoDB下根据数组大小进行查询的方法
- MATLAB中绘图语句的顺序
- cuda中找不到cuda_bitmap的方法(进行中)
- 进程控制-进程程序替换(exec函数簇)
- js字符串转换成数字与数字转换成字符串的实现方法