springboot项目代码编写完成后,前后台调用无误,接下来需要部署,原理如下:
一、将springboot项目通过pom文件将代码和静态资源分离打包,得到 jar包,resource、lib目录。
二、将vue项目打包成dist,将dist目录下的文件拷贝到resource/static目录下。
三、将整个服务拷贝到服务器,启动jar包命令:
java -jar -Dloader.path=.,resources,lib dfwy-plm-web-0.0.1-SNAPSHOT.jar --server.port=9014
四、访问地址:http://Ip:port
下面具体讲下每一步的操作:
一、将代码和静态资源分离打包成jar包
将springboot项目通过pom文件将代码和静态资源分离打包,得到 jar包,resource、lib目录。将这三个目录拷贝到和原spring boot项目的src/main/目录下。
1. Pom添加依赖都不变,将springboot的build标签替换如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<bootclasspath>${JAVA_HOME}/jre/lib/rt.jar;${JAVA_HOME}/jre/lib/jsse.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
<!--**********分离资源文件及依赖包打包配置*************-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/lib</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<includeEmptyDirs>true</includeEmptyDirs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<include name="**/ip2region/**"/>
<include name="**/sql/**"/>
<include name="**/properties/**"/>
<include name="**/static/**"/>
<include name="**/templates/**"/>
<include name="**/*.yml"/>
<include name="**/*.xml"/>
<include name="**/*.properties"/>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
<layout>ZIP</layout>
<includes>
<include>
<groupId>non-exists</groupId>
<artifactId>non-exists</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>classes</classifier>
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<property name="dist">target/build</property>
<property name="res">target/build/resources</property>
<property name="app-name">${project.artifactId}-${project.version}</property>
<delete dir="${dist}"/>
<mkdir dir="${dist}"/>
<mkdir dir="${res}"/>
<!-- 拷贝第三方jar包 -->
<copy todir="${dist}/lib" overwrite="true">
<fileset dir="${project.basedir}/lib" erroronmissingdir="false">
<include name="alicom-mns-receive-sdk-1.0.1.jar"/>
</fileset>
</copy>
<copy todir="${dist}/lib" overwrite="true">
<fileset dir="${project.basedir}/lib" erroronmissingdir="false">
<include name="jave-1.0.2.jar"/>
</fileset>
</copy>
<!-- 移动应用程序jar包 -->
<move file="target/${app-name}.jar" tofile="${dist}/${app-name}.jar" overwrite="true"/>
<!-- 移动maven依赖jar包 -->
<move todir="${dist}/lib" overwrite="true">
<fileset dir="target/lib"/>
</move>
<!-- 移动应用程序资源文件 -->
<move todir="${res}" overwrite="true">
<fileset dir="target/classes">
<include name="**/ip2region/**"/>
<include name="**/sql/**"/>
<include name="**/properties/**"/>
<include name="**/static/**"/>
<include name="**/templates/**"/>
<include name="**/*.yml"/>
<include name="**/*.xml"/>
<include name="**/*.properties"/>
</fileset>
</move>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
2. 确认pom文件无误后,点击idea的右侧“maven projects”,在”lifecycle”下双击“package”,如下图:
3. 打包完成后,可以在…/项目名称/arget/build/看到
4. 将这三个目录拷贝到和原spring boot项目的src/main/目录下。
二、将vue项目打包成dist目录
前提:安装好node js
1. 在vue项目根目录下在命令行下执行npm install生成node_modules目录。如下:
2. 接着在该目录下执行npm run build
3.将dist目录下的全部内容复制到打包生成的resource目录下,如下:
三、将整个服务拷贝到服务器
可以是window本地,或者是linux服务器。本文以window为例,如下图:
在main目录下,启动jar包命令:
java -jar -Dloader.path=.,resources,lib dfwy-plm-web-0.0.1-SNAPSHOT.jar --server.port=9014
server.port=9014。此处的端口号根据实际情况指定。
四、服务启动后,在浏览器访问http://ip:port