非常简单的部署脚本(JavaWeb项目)和部署项目教程

简介: 这个部署方式,前提需要通过WinSCP工具将本地Maven项目打成zip包放到Linux对应的用户目录下,然后执行脚本便可以完成一键部署。大家看到下面的脚本,可以发现一个显著的特点,部署脚本内容基本都是Linux命令拼接而来的。

这个部署方式,前提需要通过WinSCP工具将本地Maven项目打成zip包放到Linux对应的用户目录下,然后执行脚本便可以完成一键部署。

大家看到下面的脚本,可以发现一个显著的特点,部署脚本内容基本都是Linux命令拼接而来的。

所以这里还得强调一下,如果想把shell学好,Linux是基础。

这就好比Java,如果你想更深层次理解MyBatis或者Spring源码,对于Java基本工要求还是非常严格的,只有当Java基础扎实,所谓的框架对于你来说,其实也没什么。

deploy.sh

#!/bin/bash

demo_dir=/home/test/tomcat8/webapps
web_dir=/home/test/tomcat8
cd $demo_dir

rm -rf test-web.war
rm -rf test-web

echo "成功删除webapps下的项目,为下一次部署做准备"

cd ..

./bin/shutdown.sh

echo "关闭tomcat8服务器"

cd /home/test/

if [ -f test-web*.zip ];then
        unzip test-web*.zip
        echo "成功解压"
fi

cd /home/test/test-web

mvn clean package

echo "打包"

cp -r /home/test/test-web/target/lms.war /home/test/tomcat8/webapps/
cp -r /home/test/test-web/target/lms /home/test/tomcat8/webapps/

echo "成功复制到$demo_dir 目录下"

cd $web_dir

./bin/startup.sh && tail -f logs/catalina.out

 

这里的话,分享的脚本是经过实际测试认证的,目前只经过ubuntu16.04验证。

不过这里有比较多的缺点和不足,就是不够自动化,而且一旦执行失败,不仔细检查的话,会很难发现。

这里的分享,只供初学者或者实际开发人员觉得通过常规的maven部署难受的话,可以借鉴这个,以减少部署时间成本。

常规部署可以参考如下内容:

1.zip包方式

unzip test-web.zip #解压zip包

cd test #进入该目录

mvn clean package #打包命令

cd target #进入target目录 打包命令成功生成的war文件会在这个目录下

cp test-web.war /home/test/tomcat8/webapps #将war文件复制到这个目录下

最后重启服务器,即可完成部署

 

2.使用git版本控制开发

git clone url #克隆远程仓库

cd test-web #进入远程仓库

mvn clean package #到有pom.xml的文件夹执行该命令

cd target #找到war包

cp test-web.war /home/test/tomcat8/webapps #将war文件复制到这个目录下

最后重启服务器,即可完成部署

 

这是我之前常用的两种方式,当然,现在都流行一个叫持续集成或自动化部署的,我这个也比较古板了,还需要手动执行。

现在有一种工具比较火,叫Jekins,它是一种持续集成+自动化部署的软件。

安装教程,可以参考我的博文:Ubuntu16.04环境安装jenkins

 

目录
相关文章
|
4天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(<https://www.sojump.com/m/2792226.aspx/>)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
13 0
|
1天前
|
消息中间件 缓存 Java
java基于云部署的SaaS医院云HIS系统源码 心理CT、B超 lis、电子病历
云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务,提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工作站等一系列常规功能,还能与公卫、PACS等各类外部系统融合,实现多层机构之间的融合管理。
28 12
|
1天前
|
Java Maven
Maven 构建 Java 项目
使用Maven的`maven-archetype-quickstart`插件在C:\MVN下创建Java应用,命令包括`groupId`, `artifactId`, 和 `archetypeArtifactId`参数。生成的项目包含src/main/java和src/test/java目录,分别用于存放源代码和测试代码,还有src/main/resources用于资源文件。默认提供App.java主类和AppTest.java测试类。按照预设结构组织文件,Maven将自动管理构建过程。
|
2天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
8 0
|
4天前
|
Java
IDEA云行项目提示Error: java: OutOfMemoryError
IDEA云行项目提示Error: java: OutOfMemoryError
|
4天前
|
Java 测试技术 项目管理
Java基础教程(22)-构建工具Maven的基本使用
【4月更文挑战第22天】Maven是Java项目管理及构建工具,简化构建、测试、打包和部署等任务。遵循约定优于配置原则,核心是`pom.xml`配置文件,用于管理依赖和项目信息。安装涉及下载、解压、配置环境变量。在IDEA中使用Maven创建项目,通过`pom.xml`添加依赖和管理版本。常用命令包括`clean`、`compile`、`test`、`package`、`install`和`deploy`。IDEA支持直接执行这些命令。
|
4天前
|
NoSQL Java 关系型数据库
Java基础教程(21)-Java连接MongoDB
【4月更文挑战第21天】MongoDB是开源的NoSQL数据库,强调高性能和灵活性。Java应用通过MongoDB Java驱动与之交互,涉及MongoClient、MongoDatabase、MongoCollection和Document等组件。连接MongoDB的步骤包括:配置连接字符串、创建MongoClient、选择数据库和集合。伪代码示例展示了如何建立连接、插入和查询数据。
|
5天前
|
存储 前端开发 测试技术
《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
【4月更文挑战第27天】本文介绍了使用Java+Selenium进行Web自动化测试时,如何遍历和操作多选按钮的方法。文章分为两个部分,首先是一个本地HTML页面的示例,展示了多选按钮的HTML代码和页面效果,并详细解释了遍历多选按钮的思路:找到所有多选按钮的共同点,通过定位这些元素并放入list容器中,然后使用for循环遍历并操作。 第二部分介绍了在JQueryUI网站上的实战,给出了被测网址,展示了代码设计,同样使用了findElements()方法获取所有多选按钮并存储到list中,然后遍历并进行点击操作。最后,文章对整个过程进行了小结,并推荐了作者的其他自动化测试教程资源。
13 0
|
5天前
|
Java 关系型数据库 MySQL
Java基础教程(20)-Java连接mysql数据库CURD
【4月更文挑战第19天】MySQL是流行的关系型数据库管理系统,支持SQL语法。在IDEA中加载jar包到项目类路径:右击项目,选择“Open Module Settings”,添加库文件。使用JDBC连接MySQL,首先下载JDBC驱动,然后通过`Class.forName()`加载驱动,`DriverManager.getConnection()`建立连接。执行CRUD操作,例如创建表、插入数据和查询,使用`Statement`或`PreparedStatement`,并确保正确关闭数据库资源。
|
5天前
|
Java
解决IDEA打开java项目出现橙色j无法运行
解决IDEA打开java项目出现橙色j无法运行
9 0