This commit is contained in:
acgist
2022-11-09 08:28:37 +08:00
parent 44fa239d89
commit ec9a0ff37a
24 changed files with 1014 additions and 61 deletions

58
docs/assembly/dev.xml Normal file
View File

@@ -0,0 +1,58 @@
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>dev</id>
<formats>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${system.maven.basedir}/docs</directory>
<outputDirectory>./</outputDirectory>
<includes>
<include>README.md</include>
</includes>
</fileSet>
<fileSet>
<directory>${system.maven.basedir}/docs/bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
<filtered>true</filtered>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>config</outputDirectory>
<filtered>true</filtered>
<includes>
<include>*.yml</include>
<include>*.properties</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>config</outputDirectory>
<includes>
<include>*.jks</include>
</includes>
</fileSet>
<fileSet>
<directory>target</directory>
<outputDirectory>logs</outputDirectory>
<excludes>
<exclude>**/*</exclude>
</excludes>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>

58
docs/assembly/release.xml Normal file
View File

@@ -0,0 +1,58 @@
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>release</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${system.maven.basedir}/docs</directory>
<outputDirectory>./</outputDirectory>
<includes>
<include>README.md</include>
</includes>
</fileSet>
<fileSet>
<directory>${system.maven.basedir}/docs/bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
<filtered>true</filtered>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>config</outputDirectory>
<filtered>true</filtered>
<includes>
<include>*.yml</include>
<include>*.properties</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>config</outputDirectory>
<includes>
<include>*.jks</include>
</includes>
</fileSet>
<fileSet>
<directory>target</directory>
<outputDirectory>logs</outputDirectory>
<excludes>
<exclude>**/*</exclude>
</excludes>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>

58
docs/assembly/test.xml Normal file
View File

@@ -0,0 +1,58 @@
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>test</id>
<formats>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${system.maven.basedir}/docs</directory>
<outputDirectory>./</outputDirectory>
<includes>
<include>README.md</include>
</includes>
</fileSet>
<fileSet>
<directory>${system.maven.basedir}/docs/bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
<filtered>true</filtered>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>config</outputDirectory>
<filtered>true</filtered>
<includes>
<include>*.yml</include>
<include>*.properties</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>config</outputDirectory>
<includes>
<include>*.jks</include>
</includes>
</fileSet>
<fileSet>
<directory>target</directory>
<outputDirectory>logs</outputDirectory>
<excludes>
<exclude>**/*</exclude>
</excludes>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>

36
docs/bin/deploy.sh Normal file
View File

@@ -0,0 +1,36 @@
#!/bin/bash
# 进入目录
base=$(readlink -f $(dirname $0))
cd $base
echo "环境目录:$base"
echo "当前目录:$(pwd)"
# 更新代码
if [ -z $gited ]; then
echo "更新代码:${project.artifactId}-${project.version}"
git pull
fi
# 编译代码
if [ -z $mvned ]; then
echo "编译代码:${project.artifactId}-${project.version}"
mvn clean package install -pl "${project.groupId}:${project.artifactId}" -am -D skipTests -P ${env}
fi
# 删除文件:注意不要删除日志
rm -rf $base/../deploy/${project.artifactId}/bin
rm -rf $base/../deploy/${project.artifactId}/lib
rm -rf $base/../deploy/${project.artifactId}/config
# 运行目录
echo "拷贝文件:${project.artifactId}-${project.version}"
if [ ! -d "$base/../deploy/${project.artifactId}" ]; then
mkdir -p $base/../deploy/${project.artifactId}
fi
# 拷贝文件
cp -rf ${project.basedir}/target/${project.artifactId}-${project.version}/* $base/../deploy/${project.artifactId}
cp -rf ${project.basedir}/target/${project.artifactId}-${project.version}.jar $base/../deploy/${project.artifactId}
# 启动服务
cd $base/../deploy/${project.artifactId}
sh bin/startup.sh

46
docs/bin/startup.sh Normal file
View File

@@ -0,0 +1,46 @@
#!/bin/bash
# 启动目录
bin=$(readlink -f $(dirname $0))
base=${bin%/*}
cd $base
echo "启动目录:$base"
# Java运行环境
JAVA=$(which java)
if [ -z "$JAVA" ] ; then
echo "必须安装${java.version}+JDK"
exit 1
fi
# 结束任务
if [ ! -f "/.dockerenv" ]; then
sh bin/stop.sh
fi
# 启动参数
JAVA_OPTS_GC="-XX:+UseG1GC -Xlog:gc:./logs/gc.log:time,level"
JAVA_OPTS_MEM="-server ${system.maven.jvm.mem}"
JAVA_OPTS_EXT="-Dfile.encoding=${system.maven.encoding} -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true"
JAVA_OPTS_APP="-Dspring.profiles.active=${profile}"
JAVA_OPTS="$JAVA_OPTS_MEM $JAVA_OPTS_EXT $JAVA_OPTS_APP ${system.maven.jvm.arg}"
echo "启动参数:$JAVA_OPTS"
# 启动应用
echo "启动应用:${project.artifactId}-${project.version}"
if [ ! -f "/.dockerenv" ]; then
# 其他启动
nohup $JAVA $JAVA_OPTS -jar $base/lib/${project.artifactId}-${project.version}.jar > /dev/null 2>&1 &
else
# 使用docker启动后台启动不能查看控制台的信息
$JAVA $JAVA_OPTS -jar $base/lib/${project.artifactId}-${project.version}.jar
fi
# 等待任务
if [ ! -f "/.dockerenv" ]; then
sh bin/wait.sh
else
echo -e "\033[32m启动成功${project.artifactId}-${project.version}\033[0m"
fi
echo "--------------------------------"

24
docs/bin/stop.sh Normal file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
# 结束任务
killIndex=0
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
if [ ! -z "$processId" ]; then
echo "关闭应用:${project.artifactId}-${project.version} - $processId"
while [ ! -z "$processId" ]
do
echo -n "."
if [ $killIndex -le 0 ]; then
# 优雅关机
kill -15 $processId
elif [ $killIndex -ge 10 ]; then
echo -n '强制关闭'
# 强制关机
kill -9 $processId
fi
sleep 1
killIndex=$((killIndex+1))
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
done
echo ""
fi

33
docs/bin/wait.sh Normal file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
# 等待任务
startTime=$(date +%s)
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
if [ ! -z "$processId" ]; then
waitIndex=0
processPortNumber=$(netstat -anop | grep $processId | grep LISTEN | wc -l)
while [ $waitIndex -le 120 ] && [ ! -z "$processId" ] && [ $processPortNumber -lt 1 ]
do
sleep 1
waitIndex=$((waitIndex+1))
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
if [ ! -z "$processId" ]; then
processPortNumber=$(netstat -anop | grep $processId | grep LISTEN | wc -l)
else
processPortNumber=0
fi
echo -n "."
done
echo ""
fi
if [ $processPortNumber -lt 1 ]; then
echo -e "\033[31m启动失败${project.artifactId}-${project.version}\033[0m"
sh bin/stop.sh
exit 0
else
finishTime=$(date +%s)
processTime=$((finishTime-startTime))
echo -e "\033[32m启动成功${project.artifactId}-${project.version} - $processId\033[0m"
echo "启动端口:$(netstat -anop | grep $processId | grep LISTEN | awk '{print $4}')"
echo "启动耗时:$processTime S"
fi