SpringBoot使用Gradle构建war包的步骤

SpringBoot使用Gradle构建war包的步骤

<div class="article-info-box">
    <div class="article-bar-top d-flex">
                                            <span class="time">2017年07月17日 15:33:01</span>
        <div class="float-right">
            <span class="read-count">阅读数:5547</span>
                                        </div>
    </div>
</div>
<article>
    <div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
                <div class="markdown_views">
            <blockquote>

只是出于好奇才打成war包,正常情况下不推荐war。打成jar包可以方便的使用外部配置,并且启动速度更快,也方便部署到docker等容器中。


一、应用插件

1.1 gradle

在gradle.build文件中新增apply plugin: war:

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'org.springframework.boot'
  • 1
  • 2
  • 3

1.2 maven

需把元素的值从jar改为war。

<packaging>war</packaging>
  • 1

二、新增类

这样就能生成WAR文件了。但如果WAR文件里没有启用Spring MVC DispatcherServlet 的web.xml文件或者Servlet初始化类,这个WAR文件就一无是处。

此时就该Spring Boot出马了。它提供的SpringBootServletInitializer是一个支持 Spring Boot的Spring WebApplicationInitializer实现。除了配置Spring的Dispatcher- Servlet,SpringBootServletInitializer还会在Spring应用程序上下文里查找Filter、 Servlet或ServletContextInitializer类型的Bean,把它们绑定到Servlet容器里。

要使用SpringBootServletInitializer,只需创建一个子类,覆盖configure()方法 来指定Spring配置类。

@SpringBootApplication
public class SSOApplication extends SpringBootServletInitializer{

    public static void main(String[] args) {
        SpringApplication.run(SSOApplication.class, args);
    }

    /**
     *重写configure
     * @param builder
     * @return
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SSOApplication.class);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

虽然应用程序里还有其他Spring配置类,但没有必要在这里把它们全部注册进来。 Application类上添加了@SpringBootApplication注解。这会隐性开启组件扫描,而组件扫 描则会发现并应用其他配置类。

三、构建

现在我们可以构建应用程序了。如果使用Gradle,你只需调用build任务即可:

gradle build
  • 1

没问题的话,你可以在build/libs里看到一个名为readinglist-0.0.1-SNAPSHOT.war的文件。

对于基于Maven的项目,可以使用package:

mvn package
  • 1

成功构建之后,你可以在target目录里找到WAR文件。

来源:springboot实战




展开阅读全文

没有更多推荐了,返回首页