# 部署脚本会在部署组的每台机器上执行。一个典型脚本逻辑如下:先将制品包(在下载路径中配置的下载路径)解压缩到指定目录中,再执行启动脚本(通常在代码中维护,如示例中deploy.sh)。关于这个例子的详细解释见 https://help.aliyun.com/document_detail/153848.html \n\n # tar zxvf /home/admin/app/package.tgz -C /home/admin/app/\n # sh /home/admin/app/deploy.sh restart\n # 如果你是php之类的无需制品包的制品方式,可以使用git clone 或者 git pull将源代码更新到服务器,再执行其他命令 \n # git clone ***@***.git\n
rzpid=`ps -ef | grep realize-web-master.jar | grep -v grep | awk '{print $2}'`
echo “fb项目进程ID为:$rzpid”
#杀进程
for id in $rzpid
do
kill -9 $id
done
if [ ! -d "/home/realize-web-master/" ];then
mkdir /home/realize-web-master/
else
echo "文件夹已经存在"
fi
tar zxvf /home/admin/app/package.tgz -C /home/realize-web-master
nohup java -jar /home/realize-web-master/realize-web-master.jar --server.port=80 &
springboot+thymleaf 程序发布部署阿里云ECS
java编译脚本:
# maven build default command 指定激活生产环境配置文件
mvn -B clean package -P prod -Dmaven.test.skip=true -Dautoconfig.skip
# gradle build default command
# ./gradlew build
# ant build default command
# ant
<build>
<finalName>${project.name}</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources/${profiles.active}</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<!-- 开发环境 -->
<id>dev</id>
<properties>
<profiles.active>profile/dev</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<profiles.active>profile/test</profiles.active>
</properties>
</profile>
<profile>
<!-- 生产环境 -->
<id>pro</id>
<properties>
<profiles.active>profile/pro</profiles.active>
</properties>
</profile>
</profiles>
构建java
# maven build default command
mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip
# gradle build default command
# ./gradlew build
# ant build default command
# ant
/home/admin/app/package-file.tgz
部署主机
realize-modules\realize-file\target
packageName=package-file.tgz
applicationName=realize-file.jar
rzpid=`ps -ef | grep $applicationName | grep -v grep | awk '{print $2}'`
echo “fb项目进程ID为:$rzpid”
#杀进程
for id in $rzpid
do
kill -9 $id
done
if [ ! -d "/home/admin/app/" ];then
mkdir /home/admin/app
else
echo "文件夹已经存在"
fi
if [ ! -d "/home/realize-enterprise/" ];then
mkdir /home/realize-enterprise/
else
echo "文件夹已经存在"
fi
tar zxvf /home/admin/app/$packageName -C /home/realize-enterprise
nohup java -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms128M -Xmx256M -jar /home/realize-enterprise/$applicationName &