怎么把java项目部署到云服务器
小鸟云企业级高可用云服务器、云虚拟主机、网站服务器租用托管服务提供商,一站式云计算解决方案,弹性灵活、按需付费,轻松助力企业及个人云端部署!
我们要部署 Java Web 项目,那就至少得将项目上传到云服务器。其实过程很简单,基本上也就是下面三个步骤:
① 打包上传:将项目打包成 war 文件,然后利用传到远程服务器(在Eclipse中直接将项目导出为war文件)。
② 将 war 文件移动到 Tomcat 目录下的 webapps 下。
③ 重启 Tomcat,访问我们的项目。
在这个过程中,我们需要注意。因为一般而已,作为一个 Web 项目,我们肯定是有数据库的使用的。那么数据库部分怎么办呢?其实,只需要将我们已有的数据库转储为 sql 文件,然后将 sql 文件上传到云服务器上执行即可。以 mysql 为例,如下操作:
① 转储为 sql 脚本,并上传:先在本地将我们项目使用的数据库转为 sql 文件,上传到云服务器上 (可以利用 Navicat 将数据库转储为sql文件)。
② 执行 sql:然后进入 mysql 中执行该 sql 文件。(若服务器装有Navicat,可直接用Navicat执行sql文件,执行前需要选中存放表的数据库,应该与代码中数据库连接语句包含的数据库名保持一致)
你需要登录云服务器管理控制台,记录被我打马赛克位置的公网ip。
登录服务器
windows推荐下putty进行连接远程服务器,linux和macos不需要那么麻烦,ssl就行了。
putty
在下图的host name中输入你的公网IP,点击open。
putty界面
输入密码,看不见输入不要慌,linux就是这样保护安全的。
Paste_Imagepng
登录成功界面见下图,然后想怎么操作就怎么操作了。
登陆成功界面
运行我的python文件
推荐FileZilla进行文件传输(不具体说明了),我上传了我的flask网站项目
我的项目
记住服务器同时有Python2和Python3,
python
运行的时候记得使用合适的版本,我用的是虚拟环境(自行百度如何创建虚拟环境)
在运行python之前先安装一个screen,他可以将一个程序在后台运行
sudo apt-get install screen
运行python文件,成功后按下ctrl+A和ctrl+D可以隐藏。隐藏后可以输入screen -r 恢复。
运行成功
一、项目打包:
1更改项目的启动方式
使用webxml运行应用程序,指向Application,最后启动springboot(继承SpringBootServletInitialier,重写函数)
public class WarStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return buildersources(Applicationclass);
}
}
2更改properties配置信息
修改相关的地址和配置信息
PS: 可采用STS自带的动态配置系统(多配置文件)进行开发环境和生产环境的隔离。
3更改api接口层配置文件(pomxml)
1)进行war包配置
<packaging>war</packaging>
2)war包打包所需依赖项
<dependency>
<groupId>javaxservlet</groupId>
<artifactId>javaxservlet-api</artifactId>
<scope>provided</scope>
</dependency>
4执行打包操作
1)maven clean清除之前的打包
2)maven install进行打包操作
二、将war包文件上传至服务器
1在api层的target文件夹下找到新生成的项目war包
2使用rzsz工具上传war包(rz)
三、使用Tomcat进行项目开放
1进行 Tomcat的环境部署
2将war包拷贝到tomcat的webapps文件夹下
3cd至bin文件夹下(tomcat会自动解压项目war包并进行项目部署)
使用startupsh进行tomcat启动
使用shutdownsh进行tomcat关闭
这是一篇基于Gitee搭建个人网站的保姆级教程。从零到一。如果你想基于云服务器搭建,我以前写过一篇 菜鸟篇 。
适合人群 :入门级别教程,如果你想拥有一个自己的网站,又苦于没有云服务器,这个是你的不二选择。
本篇是基于 docsify 搭建,docsify 是一个文档类博客模板,简介且方便使用。
效果预览:
https://rodertgithubio/JavaPub-Interview/
[toc]
你需要已有的环境:node、git、npm
快速安装脚手架:
你会发现 rodert 文件夹下面多了一些文件。后面一一解释
初始化后效果图
下面是我们需要的一些基础配置。建议 clone 这个地址 https://rodertgithubio/JavaPub-Interview/ ,运行看效果。
配置方式:
OK,有了搜索功能。
需要引入 js 文件:
效果:
需要引入两个 js 文件:
官网: https://docsifyjsorg/
增加 _sidebarmd 文件,编写文件格式如下:(也就是md语法)
现在Github网络非常不稳定,在码云部署一份
jenkins要想在远程服务器执行命令,发送文件等操作,必然要处理jenkins与远程机的免交互问题。
下面如何让jenkins与目标主机实现免交互。
系统管理-- 插件安装--搜索ssh --安装 Publish Over SSH
安装完成后,在jenkins端生成秘钥对(公钥id_rsapub 私钥id_rsa)
输入一次密码,以后就免密了。输入完可以用ssh 登陆试一下。
我们以最简单的一个例子来演示,部署一个Html页面到远程服务器的nginx网站目录下,实现页面上线。
首先,刚才jenkins配置ssh插件,注意填写远程服务器信息的那里的remote directory这个地方指的发送到远程服务器的哪个目录下。
在job配置中
上图的配置就是,将jenkins上的项目文件inithtml发送到远端主机1921681112的/var/www/html下
保存,退出。
远端主机的nginx配置:
点击构建。
结果:部署成功
例子比较简单,后期会更新java的部署过程。
我是使用我的腾讯云轻量应用服务器做的本次实战
(操作系统:CentOS 76 64bit)
(主机规格:CPU: 4核 内存: 4GB)这个配置起前端有点带不动-_-,建议8G内存,这个问题我反复测试很多次。一跑npm 就开始疯狂占资源,然后操作系统内存不够直接把jenkins的进程都给杀了。所以如果你也是4g或者2g内存,尽量不要有其他多余的应用或者容器在机器上运行。
启动:
a与b的结果都是将jenkins启动,也是我们的目标,本篇文章采用war包方式,也建议war包的方式,docker启的话,里面jdk是11,而我机器的jdk是8,同时项目jdk也是8,换11的话,天知道会出什么问题。 启动之后,访问一下,上述例子中我映射了7999端口,同时我的腾讯云防火墙也开放了7999这个端口,下面是访问图例:
根据提示粘贴密码,如果是war包启动的就直接复制页面提示的路径就可以,输入命令,即得密码
如果是docker启动的,上面的-v挂载了一个路径 /jenkins-data 这里面的文件就是容器里jenkins_home里面的文件,故路径就变成了
随后,输入得到的密码,进入,选择安装推荐的插件
接下来,就等待机器安装,然后创建第一个账户,然后jenkinsURL默认是啥就是啥(反正可以改的),可能会提示重启,如果没有不管。进入jenkins
到这里,先停一下。右上角红色的1不管。
装插件: (系统管理)Manage System -> (插件管理)Manage Plugins -> (可选的插件)Available,在 Filter 中搜索 Gitee,Jersey2 API这两个插件,然后分别选中,然后点install without restart。
等待安装完毕即可。
之后,就是配置gitee了
系统管理—>系统配置---->gitee配置
在 链接名 中输入 Gitee 或者你想要的名字
Gitee 域名 URL 中输入码云完整 URL地址: https://giteecom (码云私有化客户输入部署的域名)
证书令牌 中如还未配置码云 APIV5 私人令牌,点击 Add - > Jenkins
Domain 选择 全局凭据
Kind 选择 Gitee API 令牌
Scope 选择你需要的范围
Gitee API Token 输入你的码云私人令牌,获取地址: https://giteecom/profile/personal_access_tokens
这个令牌建议保存在云笔记之类的东西上,方便自己以后用
ID, Descripiton 中输入你想要的 ID 和描述即可。然后点添加,然后回来选择刚刚添加的令牌,点击测试链接,出现成功即可。
我是在宿主机安装的maven,这样后面shell命令里面可以直接用mvn
maven的话最好是使用jeecg官方推荐的
找一下settings文件
就可以看到maven home 然后在maven home的conf目录下就有settings文件了。
然后替换一下 settingsxml文件,或者直接改也行(就下面这部分):
npm是装在宿主机的。因为我是war包直接起的。所以可以直接在后面shell命令里面用npm,如果是docker启动的,容器里面是没有node的,而且容器里面jdk是11,就…不是很方便,所以我前面建议war包直接起。
我的版本:
jeecg-boot/ ant-design-vue-jeecg / Dockerfile:
jeecg-boot/ ant-design-vue-jeecg / envproduction
新建任务–>构建一个自由风格的软件项目—>源码管理—>点git
输入repository URL: https://giteecom/xiao_chaowen/jeecg-bootgit( 也就是仓库地址)
配置凭证:
gitee的用户名密码
点高级:
Branch Specifier 选项:
对于单仓库工作流输入: origin/g i t e e S o u r c e B r a n c h
对 于 P R 工 作 流 输 入 : p u l l / {giteeSourceBranch}
对于 PR 工作流输入: pull/giteeSourceBranch
对于PR工作流输入:pull/{giteePullRequestIid}/MERGE
Additional Behaviours 选项:
对于单仓库工作流,如果你希望推送的分支构建前合并默认分支(发布的分支),可以做以下操作:
点击 Add 下拉框
选择 Merge before build
设置 Name of repository 为 origin
设置 Branch to merge to 为 ${ReleaseBranch} 即要合并的默认分支(发布分支)
对于 PR 工作流,码云服务端已经将 PR 的原分支和目标分支作了预合并,您可以直接构建,如果目标分支不是默认分支(发布分支),您也可以进行上诉构建前合并。
接着构建触发器:
点击gitee webhook触发构建
点击生成一下gitee webhook密码 同时记录上面一张图的gitee webhook要填的URL。然后去gitee新增webhook进行填写即可。
然后回来配置构建,点击增加构建步骤—>执行shell:
这堆命令,就是起后台和前台的镜像,可以根据自己情况更改
然后是构建后操作:
完事了保存一下。就可以在gitee webhook那里点击测试,然后回到jenkins查看控制台输出
然后查看服务器,会有四个容器已经启动,如果启动失败的,看一下logs,有可能是配置之类的问题。
现在就可以访问8000
通过办公类应用服务器、网站类应用服务器、数据库类应用服务器、虚拟主机类应用服务器。
云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。避免了使用传统服务器时需要预估资源用量及前期投入,帮助您在短时间内快速启动任意数量的云服务器并即时部署应用程序,降低开发运维的难度和整体IT成本,使您能够更专注于核心业务的创新。感兴趣的话点击此处了解一下
亿万克注重自主创新,稳扎稳打,蓬勃发展,配合研祥集团积极主导和参与国际国内标准研制工作,形成标准创新示范,已然是业界标杆一样的存在。亿万克的核心产品和技术获得国家重点新产品、国家自主创新产品、中国专利奖、全国工商联科技进步一等奖、广东省科技进步一等奖近百项荣誉,同时拥有国家地方联合工程实验室、企业技术中心,其核心竞争力已达业界领先水平。
一、用来放网站
网站服务器的应用通常是最常见的,按规模可以根据网站的日均PV区分,按类型可以区分为门户类网站、企业类网站、个人网站、交易型网站、论坛、博客等。
网站应用服务器的部署流程如下:在云服务器上部署网站前,首先必须确保您有云服务器的管理权限,或者是云服务器的空间和接口程序。
二、办公系统应用云服务器
随着电脑在办公中的需求越来越重要,办公软件也成为了企业必须具备的基本软件应用。办公软件的种类非常多,应用最多的主要是OA、ERP、CRM、企业邮箱等,这些办公软件在云服务器上的部署是大致相同的。
三、数据库应用云服务器
随着IT行业应用部署规模的日益增大,越来越多的企业使用云服务器作为单独的数据库应用服务器,用云服务器安装数据库服务。
四、 渲染和视频转码
**渲染是非常费时间的,渲染的时间越长,越能保证画面的真实感,而云服务器正好适用于渲染,据了解,《哪吒》需要渲染的总帧数高达289077帧,一台云服务器每次只能渲染一帧,而一帧完成渲染的时间可能要十几二十小时,这种大工程,肯定不会只有一台云服务器来渲染,而是同时有几千台的云服务器不眠不休的高效工作。而小工程的渲染,比如设计师在作图的时候,3D建模的图,也会需要渲染,如果嫌自己电脑太慢,不妨开一台云服务器帮你完成,即开即用,用完就删除资源,很方便的。
0条评论