springboot 中 jar包的打入方式
开发工具 idea
项目 maven 或 直接利用 spring Initializr创建
重中之重 导入依赖
第一步
在pom.xml文件中先找到自己的name标签,在其下面添加标签packaging
其中标签体中的内容为jar/war ,这次先写入jar
<artifactId>springboot_zuoye</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_zuoye</name>
<packaging>jar</packaging>
如图所示:
第二步:2.配置maven插件
找到build标签在其中加入plugin标签 并引入依赖 ,
1.spring-boot-maven-plugin其版本为1.4.2,因只有测试过许多版本仅该版本可用
2.mainClass标签中指代的类为入口类的全类名
代码如下
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
<!--使用热部署出现中文乱码解决方案-->
<configuration>
<fork>true</fork>
<!--增加jvm参数-->
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<!--jar包部署-->
<mainClass>com.baizhi.App</mainClass>
<layout>JAR</layout>
</configuration>
</plugin>
</plugins>
第三步 因springboot打成的jar包不会将jsp打到jar包里
需要引入resources标签是为了指定存放目录
其中3个includes标签
第一个指定的是jsp的目录
第二个纸袋的是resource的目录
第三个指定的是java的目录
<build>
<resources>
<!-- 打包时将jsp文件拷贝到META-INF目录下-->
<resource>
<!-- 指定resources插件处理哪个目录下的资源文件 -->
<directory>src/main/webapp</directory>
<!--注意此次必须要放在此目录下才能被访问到-->
<targetPath>META-INF/resources</targetPath>
<!--是否包含-->
<includes>
<!--将源目录的所有文件拷贝到目标目录-->
<include>**/**</include>
前面的**代表上面webapp下所有的文件和目录
后面的**代表所有文件拷贝到resources目录下
</includes>
</resource>
<!--不要将resources中的文件拷贝到META-INF/resources-->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
前面的**代表resources下的所有文件和目录
后面的**代表所有文件拷贝到resources这个目录下
但因为其已经存在所以下面过滤掉
</includes>
<filtering>false</filtering>
</resource>
<!--不要将src/main/java中的文件拷贝到META-INF/resources-->
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
前面的**代表java下的所有目录和文件
后面的**代表所有文件不拷贝到.java的这个目录下
</excludes>
</resource>
</resources>
</build>**
第四步 使用lifecycle中的package指令打包
第五步 运行jar 利用cmd窗口 指令为:java - jar jar包名字.jar
springboot 中 war包的打入方式
1.pom.xml中必须将打包方式改为war
2.必须排除内嵌tomcat
3.当使用外部tomcat的时候 springboot项目中的项目名和端口号失效
注意:
1.项目名就是war文件的名字
2.端口号是tomcat的端口号
1.排除内嵌tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!--使内嵌tomcat支持jsp页面的解析-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>8.5.23</version>
<scope>provided</scope>
</dependency>
2.项目的入口类需要继承SpringBootServletInitializer
@MapperScan(basePackages = "com.baizhi.mapper")
@SpringBootApplication //剖析
public class App extends SpringBootServletInitializer {
public static void main(String[] args) {
/*
* 第一个参数 指当前入口类的类对象
* 第二个参数 main函数中的args属性
* */
SpringApplication.run(App.class, args);
}
/*
* 如果使用war包部署则需要实现该方法
* */
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(App.class);
}
}