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>-->
-<!--                            &lt;!&ndash; xml文件 &ndash;&gt;-->
-<!--                            <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