From 933ee70c42092a600696428cefd178de805d0439 Mon Sep 17 00:00:00 2001
From: wanghc <2466022993@qq.com>
Date: Tue, 27 Jun 2023 12:46:38 +0800
Subject: [PATCH] 打包方式修改为lib,添加启动脚本
---
cmci-pfcs-gateway/src/main/resources/bin/service.sh | 89 ++++++++++++
cmci-pfcs-gateway/src/main/resources/bin/shutdown.sh | 40 +++++
cmci-pfcs-gateway/pom.xml | 165 ++++++++++++++++------
cmci-pfcs-gateway/src/main/resources/bin/restart.sh | 39 +++++
cmci-pfcs-gateway/src/main/resources/application.properties | 2
cmci-pfcs-gateway/src/main/resources/bin/startup.sh | 37 +++++
cmci-pfcs-gateway/src/main/resources/bin/start.bat | 8 +
7 files changed, 332 insertions(+), 48 deletions(-)
diff --git a/cmci-pfcs-gateway/pom.xml b/cmci-pfcs-gateway/pom.xml
index e57d545..9bb24bc 100644
--- a/cmci-pfcs-gateway/pom.xml
+++ b/cmci-pfcs-gateway/pom.xml
@@ -77,57 +77,128 @@
</resources>
<plugins>
+ <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
<plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- <!-- docker 镜像生成 -->
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>1.2.0</version>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
<configuration>
- <!-- 镜像名 -->
- <imageName>${project.artifactId}</imageName>
- <!-- Dockerfile所在目录 -->
- <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
- <!-- 生成的jar文件 -->
- <buildArgs>
- <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
- </buildArgs>
- <!-- 复制jar到docker容器指定目录 -->
- <resources>
- <resource>
- <targetPath>/</targetPath>
- <directory>${project.build.directory}</directory>
- <include>${project.build.finalName}.jar</include>
- </resource>
- </resources>
+ <classesDirectory>target/classes/</classesDirectory>
+ <archive>
+ <manifest>
+ <mainClass>boot.Application</mainClass>
+ <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
+ <useUniqueVersions>false</useUniqueVersions>
+ <addClasspath>true</addClasspath>
+ <classpathPrefix>lib/</classpathPrefix>
+ </manifest>
+ <manifestEntries>
+ <Class-Path>.</Class-Path>
+ </manifestEntries>
+ </archive>
</configuration>
</plugin>
- <!-- wsdl生成插件 生成了就不用了 这里注释掉 -->
-<!-- <plugin>-->
-<!-- <groupId>org.apache.cxf</groupId>-->
-<!-- <artifactId>cxf-codegen-plugin</artifactId>-->
-<!-- <version>3.5.1</version>-->
-<!-- <executions>-->
-<!-- <execution>-->
-<!-- <id>generate-sources</id>-->
-<!-- <phase>generate-sources</phase>-->
-<!-- <configuration>-->
-<!-- <!– xml文件 –>-->
-<!-- <sourceRoot>src/main/java</sourceRoot>-->
-<!-- <wsdlRoot>${basedir}/src/main/resources/wsdl</wsdlRoot>-->
-<!-- <includes>-->
-<!-- <include>*.wsdl</include>-->
-<!-- </includes>-->
-<!-- </configuration>-->
-<!-- <goals>-->
-<!-- <goal>wsdl2java</goal>-->
-<!-- </goals>-->
-<!-- </execution>-->
-<!-- </executions>-->
-<!-- </plugin>-->
+
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-resources-bin</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/bin</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources/bin</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-resources-html5</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/html5</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources/html5</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-resources-static</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/static</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources/static</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </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>
+ <outputDirectory>
+ ${project.build.directory}/lib
+ </outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.surefire</groupId>
+ <artifactId>surefire-junit47</artifactId>
+ <version>2.12</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
</plugins>
</build>
diff --git a/cmci-pfcs-gateway/src/main/resources/application.properties b/cmci-pfcs-gateway/src/main/resources/application.properties
index c255588..728d746 100644
--- a/cmci-pfcs-gateway/src/main/resources/application.properties
+++ b/cmci-pfcs-gateway/src/main/resources/application.properties
@@ -1,4 +1,4 @@
spring.application.name=@pom.artifactId@
-server.port=8400
+server.port=60789
server.servlet.context-path=/pf-api
logging.config=classpath:logback.xml
\ No newline at end of file
diff --git a/cmci-pfcs-gateway/src/main/resources/bin/restart.sh b/cmci-pfcs-gateway/src/main/resources/bin/restart.sh
new file mode 100644
index 0000000..c9ca7e1
--- /dev/null
+++ b/cmci-pfcs-gateway/src/main/resources/bin/restart.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+echo "***************************开始重启************************"
+os400=false
+case "`uname`" in
+OS400*) os400=true;;
+esac
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+PRGDIR=`dirname "$PRG"`
+EXECUTABLE=service.sh
+
+# Check that target executable exists
+if $os400; then
+ # -x will Only work on the os400 if the files are:
+ # 1. owned by the user
+ # 2. owned by the PRIMARY group of the user
+ # this will not work if the user belongs in secondary groups
+ eval
+else
+ if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
+ echo "没有找到 $PRGDIR/$EXECUTABLE"
+ echo "没有执行权限"
+ exit 1
+ fi
+fi
+exec "$PRGDIR"/"$EXECUTABLE" restart "$@"
+echo "***************************服务重启************************"
diff --git a/cmci-pfcs-gateway/src/main/resources/bin/service.sh b/cmci-pfcs-gateway/src/main/resources/bin/service.sh
new file mode 100644
index 0000000..fcb8112
--- /dev/null
+++ b/cmci-pfcs-gateway/src/main/resources/bin/service.sh
@@ -0,0 +1,89 @@
+#!/bin/sh
+
+## java env
+export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
+export JRE_HOME=$JAVA_HOME/jre
+
+
+
+## you just need to change this param name
+SERVICE_NAME=cmci-pfcs-gateway
+
+SERVICE_DIR=/home/fenl/springboot/$SERVICE_NAME
+
+JAR_NAME=$SERVICE_DIR/$SERVICE_NAME\.jar
+PID=$SERVICE_NAME\.pid
+
+cd $SERVICE_DIR
+LOGS_DIR=/home/fenl/logs/cmci_pfcs_gateway_web
+if [ ! -d $LOGS_DIR ]; then
+ mkdir $LOGS_DIR
+fi
+STDOUT_FILE=$LOGS_DIR/cmci_pfcs_gateway_web.log
+
+
+case "$1" in
+
+ start)
+ nohup java -server -Xms256M -Xmx512M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true -Duser.timezone=GMT+8 -jar $JAR_NAME >/dev/null 2>nohup.out &
+ echo $! > $SERVICE_DIR/$PID
+ echo " ……………………………………………………………………………………"
+ echo ""
+ echo "╭⌒╮成功━┅~ ¤ ╭⌒╮ ╭⌒╮ "
+ echo "╭⌒╭⌒╮╭⌒╮~╭⌒╮︶︶, ︶︶ "
+ echo ",︶︶︶︶,''︶~~ ,''~︶︶ ,'' "
+ echo "╱◥█◣ ╱◥█◣ "
+ echo "︱田︱田︱︱田︱田︱ "
+ echo "╬╬╬╬╬╬╬╬╬╬╬╬╬╬ "
+ echo ""
+ echo "……………………………………………………………………………………"
+ ;;
+
+ stop)
+ kill `cat $SERVICE_DIR/$PID`
+ rm -rf $SERVICE_DIR/$PID
+ echo "********************* stop $SERVICE_NAME ******************"
+
+ sleep 5
+ 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 " .======."
+ echo " | INRI |"
+ echo " | |"
+ echo " .========' '========."
+ echo " | $SERVICE_NAME |"
+ echo " '========. \ / ========'"
+ echo " | | / |"
+ echo " |/-.( |"
+ echo " |\_._\ |"
+ echo " | \ \ ;|"
+ echo " | > |/|"
+ echo " | / // |"
+ echo " | |// |"
+ echo " | \(\ |"
+ echo " | |"
+ echo " | |"
+ echo " \\ _ _\\| \// |//_ _ \// _"
+ 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
+
diff --git a/cmci-pfcs-gateway/src/main/resources/bin/shutdown.sh b/cmci-pfcs-gateway/src/main/resources/bin/shutdown.sh
new file mode 100644
index 0000000..446b78b
--- /dev/null
+++ b/cmci-pfcs-gateway/src/main/resources/bin/shutdown.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+echo "***************************开始优雅停止服务****************************"
+os400=false
+case "`uname`" in
+OS400*) os400=true;;
+esac
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+PRGDIR=`dirname "$PRG"`
+EXECUTABLE=service.sh
+
+# Check that target executable exists
+if $os400; then
+ # -x will Only work on the os400 if the files are:
+ # 1. owned by the user
+ # 2. owned by the PRIMARY group of the user
+ # this will not work if the user belongs in secondary groups
+ eval
+else
+ if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
+ echo "Cannot find $PRGDIR/$EXECUTABLE"
+ echo "The file is absent or does not have execute permission"
+ echo "This file is needed to run this program"
+ exit 1
+ fi
+fi
+exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
+echo "**************************服务优雅停止****************************"
diff --git a/cmci-pfcs-gateway/src/main/resources/bin/start.bat b/cmci-pfcs-gateway/src/main/resources/bin/start.bat
new file mode 100644
index 0000000..03c6ad8
--- /dev/null
+++ b/cmci-pfcs-gateway/src/main/resources/bin/start.bat
@@ -0,0 +1,8 @@
+@echo off
+set PATH=C:\Program Files\Java\jdk1.7.0_79\bin;C:\WINDOWS;C:\WINDOWS\COMMAND
+set classpath=.;C:\Program Files\Java\jdk1.7.0_79\lib\tools.jar;C:\Program Files\Java\jdk1.7.0_79\lib\dt.jar
+
+cd..
+java -Xmx128m -Xms64m -Xmn32m -Xss16m -jar commerce-app--gateway.jar
+
+pause
diff --git a/cmci-pfcs-gateway/src/main/resources/bin/startup.sh b/cmci-pfcs-gateway/src/main/resources/bin/startup.sh
new file mode 100644
index 0000000..0dcdf47
--- /dev/null
+++ b/cmci-pfcs-gateway/src/main/resources/bin/startup.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+os400=false
+case "`uname`" in
+OS400*) os400=true;;
+esac
+
+PRG="$0"
+
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+PRGDIR=`dirname "$PRG"`
+EXECUTABLE=service.sh
+
+# Check that target executable exists
+if $os400; then
+ # -x will Only work on the os400 if the files are:
+ # 1. owned by the user
+ # 2. owned by the PRIMARY group of the user
+ # this will not work if the user belongs in secondary groups
+ eval
+else
+ if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
+ echo "Cannot find $PRGDIR/$EXECUTABLE"
+ echo "The file is absent or does not have execute permission"
+ echo "This file is needed to run this program"
+ exit 1
+ fi
+fi
+exec "$PRGDIR"/"$EXECUTABLE" start "$@"
--
Gitblit v1.8.0