前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot打包部署的那些事

springboot打包部署的那些事

作者头像
lyb-geek
发布2018-09-27 09:51:52
8.2K0
发布2018-09-27 09:51:52
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路

一、打成jar部署

利用springboot的插件打包

代码语言:javascript
复制
<plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

打jar的小细节

当有引入本地jar配置,如下图

pom.xml配置如下

代码语言:javascript
复制
<dependency>
            <groupId>eis_protobuf</groupId>
            <artifactId>eis_protobuf</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/eis_protobuf.jar</systemPath>
        </dependency>

springboot-maven-plugin打包的第一级目录为Boot-INF,如果不做任何配置,直接mvn clean package会发现无法把本地的jar打进Boot-INF中,则此时要做如下配置

方法一

在pom.xml的resources节点添加如下内容

代码语言:javascript
复制
<resource>
                <directory>lib</directory>
                <targetPath>BOOT-INF/lib/</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>

ps: 如果遇到一些外部配置文件比如mybatis的mapper文件或者activiti生成器的json文件,则也要把相应的文件打进resources中,否则项目启动会因找不到配置文件,而报错,配置文件如下

代码语言:javascript
复制
<resource>
                <directory>${basedir}/src/main/java</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>templates/**</exclude>
                    <exclude>static/**</exclude>
                </excludes>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.yml</include>
                    <include>**/*.yaml</include>
                    <include>**/*.properties</include>
                    <include>**/*.key</include>
                    <include>**/*.des</include>
                    <include>**/*.template</include>
                    <include>**/*.json</include>
                </includes>
            </resource>

方法二

在spring-boot-maven-plugin插件中设置includeSystemScope参数

代码语言:javascript
复制
<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <includeSystemScope>true</includeSystemScope>
      </configuration>
    </plugin>
  </plugins>
</build>

二 把sprinboot部署到外部tomcat

1、修改打包方式,把jar改成war,改成如下配置

代码语言:javascript
复制
<packaging>war</packaging>

2、引入tomcat依赖jar,scope范围为provided,并排除springboot内嵌的tomcat依赖jar,其实不排除也没关系,不影响项目运行

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3、修改打包插件,不使用spring-boot-maven-plugin插件打包,因为这个打包插件会把jar打包在Boot-INF目录下导致别的项目引用时引用不到,此时改用maven-war-plugin打包,具体配置如下

代码语言:javascript
复制
<plugin>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>2.3.2</version>
         <configuration>
            <source>1.8</source>
            <target>1.8</target>
         </configuration>
      </plugin>

4、修改启动类,启动类继承SpringBootServletInitializer,并重写configure方法

代码语言:javascript
复制
@SpringBootApplicationpublic class SpringbootDemo extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SpringbootDemo.class);
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(SpringbootDemo.class).web(true).run(args);
    }
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、打成jar部署
  • 打jar的小细节
    • 方法一
    • 方法二
    • 二 把sprinboot部署到外部tomcat
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档