目录
IDEA 部署 web 应用为 war 包
Spring boot 引入外部 Jar 包
IDEA 打包、Spring Boot Maven plugin 打包可执行 Jar、war 程序
Spring Boot 2.0.3 使用外置 Tomcat 服务器
IDEA 部署 web 应用为 war 包
1、一个 WAR 文件就是一个 Web 应用程序。建立 WAR 文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,指定一个.war扩展名。
2、开发阶段不适合使用 WAR 文件,因为在开发阶段,经常需要添加或删除 Web 应用程序的内容,而每一次改动后,重新建立WAR 文件将是一件浪费时间的事情。而在产品发布阶段,使用 WAR 文件是比较合适的,因为在这个时候,几乎不需要再做什么改动了。
3、默认情况下 IDEA 对 Java Web 应用的部署方式如下:war exploded 表示 war 包是打破的,即 war 包是解压的。这也就是为什么默认部署的 web 应用不是 war 包,而是 war 包解压后的模样。
4、如下所示选择 "+" 新建部署方式,war 全称 "web application Archive" ---web 应用归档,来源是从解压的 war 内容进行归档。
5、设置完成后就可以进行构建部署了,Build -> Build Artifacts...-> 项目名:war -> Build。
最后一步:如果是第一次构建,可以选择 Build,如果是重新构建,则是 Rebuild。
6、将生成好的 war 包可以直接放入到 Tomcat 的 wbapps 目录下(建议修改一下名称),然后启动 Tomcat 服务器,当服务器启动时,会自动解压 war 包,并放入到同名的文件夹中。(当以后再次启动服务器时,如果 war 已经解压,则不会再进行解压)
注意如果导出的war包放入webapps下不能使用时,很大原因就是Build时,没有构建完整,导致服务器启动失败,可以选择重新Build即可,保证服务器启动将war包解压后的目录大小与平时使用Web Application:Exploded部署出来的大小一致。
Spring boot 引入外部 Jar 包
1、1、有些 Jar 文件(如 Oracle 的 JDBC 驱动)由于许可证等原因,无法存放在公开仓库中。此外,还有一些小型的开源项目,它们没有将自己的构件分发到公共仓库中,也没有维护自己的仓库,无法从公共仓库中获得。
2、若 Maven 项目中需要这些组件,就需要将其下载到本地,然后可以采用以下方式:
方式1)手动安装到本地仓库,然后即可正常引用。
方式2)如果是公司内部大家都需要,且有私服,则部署到 Nexus 私服,然后即可正常引用。
方式3)直接将第三方Jar包导入到项目中使用,本文介绍方式。
直接将第三方Jar包导入到项目中使用,步骤如下
一)在项目根目录下,新建 libs 目录(与src,pom.xml等同级),把 jar 文件拷贝进来,libs 目录上右键,点击 "Add as Library..."。
二)在 pom.xml 添加依赖
<!--引入外部依赖包-->
<!--scope、systemPath:指示外部依赖包的位置-->
<!--${project.basedir}:表示项目根目录(即包含pom.xml文件的目录)-->
<dependency>
<groupId>com.xiaoju.uemc.tinyid</groupId>
<artifactId>tinyid-client</artifactId>
<version>0.1.0-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/tinyid-client-0.1.0-SNAPSHOT.jar</systemPath>
</dependency>
三)打包配置,让其打包时自动包含外部依赖包。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<!--打包配置:包括系统范围的依赖项-->
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>