SpringBoot+vue项目部署整合

一、pom文件中的build

Mavne官方文件解读build

1、BaseBuild

POM中两个build元素之间的基本元素集。

<build>
  <defaultGoal>install</defaultGoal>
  <directory>${basedir}/target</directory>
  <finalName>${artifactId}-${version}</finalName>
  <filters>
    <filter>filters/filter1.properties</filter>
  </filters>
  ...
</build>
----------------------------------------
defaultGoal:默认目标或者阶段
directory:项目构建后的目标路径。
finalName:项目的名称,版本信息
filters:过滤文件
	filter:

2、Resources

<build>
    ...
    <resources>
      <resource>
        <targetPath>META-INF/plexus</targetPath>
        <filtering>false</filtering>
        <directory>${basedir}/src/main/plexus</directory>
        <includes>
          <include>configuration.xml</include>
        </includes>
        <excludes>
          <exclude>**/*.properties</exclude>
        </excludes>
      </resource>
    </resources>
    <testResources>
      ...
    </testResources>
    ...
  </build>
  -------------------------------------------------
  Resources:资源元素的列表,每个元素都描述了与此项目相关联的文件的内容和位置。
  targetPath:指定用于放置打包后的目录结构。目标路径默认为基目录。打包在JAR中的资源的通常的目标路径是META-INF。
  directory:定义了要在哪里找到资源,构建的默认目录。
  filtering:是否开启过滤
  includes:将directory下中指定文件资源打包放入targetPath中。
  excludes:忽略directory中的文件资源,不进行打包。

二、vue项目打包

1、可以对应项目下的运行名称

npm run build

在这里插入图片描述

2、IDEA打包方式

1、进入Edit Configurations

在这里插入图片描述

2、打包命令配置

包括命令选择,名称,依赖的package.json,脚步命令Scripts

在这里插入图片描述

三、整合部署

1、dist文件处理

将vue项目打包好的dist放入SpringBoot项目中的resources/static目录下。

在这里插入图片描述

2、资源处理

1、资源解析问题:

参考: https://www.jianshu.com/p/c5c1503f5367

WebMvcConfigurationSupport 在整个应用程序中只会生效一个,如果用户已经实现了 WebMvcConfigurationSupport,则 DelegatingWebMvcConfiguration 将不会生效,换句话来说,WebMvcConfigurer 的所有实现类将不会生效。

而在Spring 中,如果类路径上不存在 WebMvcConfigurationSupport 的实例,则将会默认实现
WebMvcConfigurerAdapter、DelegatingWebMvcConfiguration 来自定义mvc 配置

下面这段代码的作用是:配置addResourceHandler和addResourceLocations,使得可从磁盘中读取图片,视频,音频等。将资源的名称解析成指定路径。

例如:/static/seat/1.png ----> /seat/1.png

public class ResourcesConfig extends WebMvcConfigurationSupport {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
       registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
       registry.addResourceHandler("/jportal-jsccbsite/**").addResourceLocations("classpath:/jportal-jsccbsite/");
       registry.addResourceHandler("/seat/**").addResourceLocations("classpath:/static/seat/");
       registry.addResourceHandler("/stranded/**").addResourceLocations("classpath:/static/stranded/");
    }
}

2、资源拦截问题

static下的 静态资源都会被spring security拦截,所以需要到配置一些拦截,或者不需要拦截的资源,路径。

addPathPatterns: 指定拦击的路径

excludePathPatterns:忽略拦击,配置的路径不进行拦截

${interceptor.login.exclude.pathPatterns}:配置文件中配置的忽略拦截的路径。

@Configuration
public class JSCCWebConfig extends ResourcesConfig{

	@Value("${jurisdiction.openLogin}")
	private boolean isOpenInterceptor;
	
	@Value("${interceptor.login.exclude.pathPatterns}")
	private String[] loginExcludePathPatterns;
	
    /**
     * 注册 拦截器
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    	InterceptorRegistration loginInterceptor = registry.addInterceptor(new JSCCHandlerInterceptor(isOpenInterceptor));
    	loginInterceptor.excludePathPatterns(loginExcludePathPatterns);
    	loginInterceptor.addPathPatterns("/jscc/**");
    	/*loginInterceptor.addPathPatterns("/static/**");*/
    	loginInterceptor.addPathPatterns("/park/**");
    	
    }
}

3、打包后台SpringBoot项目

为什么springboot项目可以达成jar包,主要是有一下依赖

<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

在这里插入图片描述

spring-boot中五个功能:

build-info:生成项目的构建信息文件 build-info.properties
repackage:这个是默认 goal,在 mvn package 执行之后,这个命令再次打包生成可执行的 jar,同时将 mvn package 生成的 jar 重命名为 *.origin
run:这个可以用来运行 Spring Boot 应用
start:这个在 mvn integration-test 阶段,进行 Spring Boot 应用生命周期的管理
stop:这个在 mvn integration-test 阶段,进行 Spring Boot 应用生命周期的管理

双击package打包

在这里插入图片描述

如果下图:生成jar包

在这里插入图片描述

先打包我们的可执行jar,我们的代码在boot-inf/classes目录下,

在这里插入图片描述

还有一个 META-INF 的目录,该目录下有一个 MANIFEST.MF 文件,打开该文件,内容如下:

在这里插入图片描述

打卡MaNIFEST.MF文件, 可以看到,这里定义了一个 Start-Class,这就是可执行 jar 的入口类。

Spring-Boot-Classes 表示我们自己代码编译后的位置,Spring-Boot-Lib 则表示项目依赖的 jar 的位置。
换句话说,如果自己要打一个可执行 jar 包的话,除了添加相关依赖之外,还需要配置 META-INF/MANIFEST.MF 文件。
在这里插入图片描述

将打好的jar包部署到linux服务器上。

运行命令, nohup表示当终端窗口关闭时,不要把spring boot项目停掉,还是要继续运行,&表示在后台运行

nohup java -jar xxx.jar &

四、bat脚本基本知识

可以借助这些知识去读懂,编写项目打包脚本。

java -verbose : 查看java安装路径

1、@echo

echo命令:命令回显。

脚本:echo tesxt
显示:echo text
test
---------------------------------
@echo : 关闭命令回显 @echo
脚本:@echo text
显示:text
---------------------------------
echo off :关闭其后所有命令的回显,不包括本身
脚本:echo off
echo hello
显示:echo off
hello
---------------------------------
@的作用是关闭紧跟其后的一条命令的回显。
脚本:@echo off
@echo hello
echo hello
显示:
hello
hello
结果分析:@ehco off,所有echo off 关闭所有命令回显,不包括本身,但@关闭自身命令回显,echo off 为命令,所以不答应。
@echo hello ,应为命令回显被关闭了,所有打印hello。
echo hello ,同理打印hello。

2、pause

pause也是一条命令,作用就是使程序暂停,也就是输出“请按任意键继续…”的原因。

在这里插入图片描述

3、::

::是批处理文件中一种注释语句的方式

在这里插入图片描述

4、set

格式: set 变量名 = 变量值

例如:set runpath = %CD%

预定义变量

下面是些已经被底层定义好可以直接使用的变量:不会出现在 SET 显示的变量列表中

%CD% - 扩展到当前目录字符串。
%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。
%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。
%0 bat的完整路径名如"C:\Windows\system32\xxx.bat"
%1 bat参数1依次类推%2参数2…
%path% - 当前的环境变量。以分号隔开的路径列表,路径可包含空格,可以以’'结尾, 可以以双引号包围之。 ****

案例:

@echo off
echo update code

set runpath=%cd%
echo %CD%
echo %Date%
echo %TIME%
echo %RANDOM%
echo %ERRORLEVEL%
echo %CMDEXTVERSION%
echo %CMDCMDLINE%
echo %0%
echo %1%
echo %path%

对应输出结果:

在这里插入图片描述

5、call

简单来说就是,在批处理命令中, call命令用来从一个批处理脚本中调用另一个批处理脚本 ,还是用上面echo来举例。

1、新建一个文件命名为hello,后缀为.bat,内容如下

echo hello

2、新建一个文件名为world, 后缀同为.bat,内容如下

@echo off

call hello.bat

echo world

@echo end

pause


对应输出

hello

world

end

请输入任意键继续…

6、copy

复制,这里就没啥好说的了,注意相对路径问题。

copy .\dist ..\..\jscc-cloud-seat\src\main\resources\static\seat\dist
  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值