项目打包运行
前置条件
- 默认你已经拥有自己的服务器,或者虚拟机,并且环境已经搭建好了
- 项目的端口号已经开启,其他必要服务的端口号也开启了,没有开启下面会讲
- mysql,java,tomcat,等必要软件已经在服务器上安装
- 此次采用的方式多为宝塔,linux也是同理的,原理相同,宝塔操作更为直观
linux配置
数据库权限赋予
这里用一个新用户进行演示,赋予其所有权限
CREATE USER 'yourLoginName'@'%' IDENTIFIED BY 'yourpassword'; # 创建一个用户,名字随意,密码随意
GRANT ALL PRIVILEGES ON *.* TO 'yourLoginName'@'%'; # 赋予这个用户所有的权限
FLUSH PRIVILEGES; # 刷新权限,连接成功
GRANT ALL PRIVILEGES ON *.* TO 'waves'@'%';
FLUSH PRIVILEGES; # 刷新权限,连接成功
之后按照前面的步骤查询一下user表的host和userer字段即可,host为%代表修改成功
开启端口号
阿里云和宝塔都需要开启
宝塔配置
软件安装
数据库
如果是第一次在宝塔面板上添加数据库的话,点击添加数据库,配置相关信息
如果是linux系统上已经有了数据库,那就点击同步所有 | 从服务器获取
- 先同步服务器上的数据库,其中标红的就是项目所使用的数据库
- 打开navicat,远程连接服务器数据库
- 将本地mimall数据库当中的表复制到新数据库当中
- copy成功
springboot项目打包
首先,很重要的一点,检查你的pom.xml文件,检查这几个配置项
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 我这里是通过阿里云官网下载的boot项目,这里的配置项可能不一样,但是要做修改 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
yml配置文件信息核对
在config类下添加跨域配置类
代码
/**
* 配置跨域代理
* @author waves
*/
@Configuration
public class CorsConfig {
// 当前跨域请求最大有效时长,默认设置1天
private static final long MAX_AGE = 24 * 60 * 60;
@Bean
public CorsFilter corsFilter(){
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
// 配置访问原源地址,你自己的服务器ip地址
corsConfiguration.addAllowedOrigin("http://xx.xxx.xx.xxx");
// 设置访问源请求头
corsConfiguration.addAllowedHeader("*");
// 设置请求方法
corsConfiguration.addAllowedMethod("*");
corsConfiguration.setMaxAge(MAX_AGE);
// 对接口配置跨域设置
source.registerCorsConfiguration("/**",corsConfiguration);
return new CorsFilter(source);
}
}
打包
先clean再package,clean是清除当前项目当中已打包的jar包文件,package是进行打包
打包成功以后,在项目的target目录下有一个jar包文件
部署到宝塔
因为不止一个项目,所以我在http下又创建了一个文件存放当前的boot项目
点击上传,把jar包拖过去
点击网站,添加站点
点击设置
在宝塔上面远程连接服务器
这里的ip地址不要写你服务器的,就用他的127.0.0.1,此刻服务器才是本机,用户名是root,密码就是你阿里云密钥/ssh哪里设置的密码
登录成功以后,进入终端,运行jar包
java -jar yourJarPackageName.jar
这样项目就成功运行了,你可以在自己的本机上面去访问服务器端口的boot项目
但是这里只是配置了boot项目,当这个远程连接终端关闭的时候,boot项目也会停止
加入代码,我就不加了,我只是测试下项目,有vue项目也可以按照之前的流程部署在服务器上,跟java的jar包放在同一级目录
# 让其一直运行
nohub java -jar youbootJarName.jar $
# 关闭当前远程连接
exit
刷新目录,出现这个文件 ,项目会一直运行