SpringBoot(2.1.1)发布打包和多环境配置(九)

1.多环境配置

#激活哪一个环境的配置文件
spring.profiles.active=dev
application-dev.properties:开发环境
application-test.properties:测试环境

application-prod.properties:生产环境

 

2. 发布打包

2.1 使用Spring Boot Maven插件打包成可运行的jar

SpringBoot包含一个Maven插件,它可以将项目打包成一个可执行jar。如果想使用它,你可以将该插件添加到<plugins>节

<packaging>jar</packaging>


<build>
<finalName>spring-boot</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

到jar或war 包目录下执行 java -jar <name>.war或java -jar <name>.jar
如D:\workFile\test\spring-boot-dmeo\target>java -jar spring-boot.war
注:如果使用Spring-Boot-starter-parent pom,你只需要添加该插件而无需配置它,
除非你想改变定义在partent中的设置。

该配置会在Maven生命周期的 package阶段重新打包一个jar或war。下面的示例显示在target目录下既有重新打包后的jar,

也有原始的jar,上面就是继承了它,所以配置比较简单,否则要多配点

需要注意的一点是,spring-boot官方建议入口函数Application.java要放到根目录

如果Application.java不在根目录下,或有多个入口或报错没有主清单,可以修改pom.xml如下配置指定入口文件:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.alen.springboot.demo.SpringBootDemoApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>

            </plugin>
        </plugins>
    </build>

访问路径:http://localhost:端口号/请求的名

 

2.2 打包成不可运行的jar

打包成不可运行的jar时不要配置spring-boot-maven-plugin此插件,要不会报错

 

2.3 把包成可运行的war

2.3.1 使用SpringBoot自带tomcat运行--打包形式

在pom.xml里设置

<packaging>war</packaging>

八宝,直接D:\workFile\test\spring-boot-dmeo\target>java -jar spring-boot.war运行

2.3.2 使用外部的tomcat运行--打包形式

1. 移除嵌入式tomcat插件,想放到自己的容器里运行就排除SpringBoot自带的

在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码,

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- 去除内嵌tomcat -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

2. 修改启动类,并重写初始化方法

我们平常用main方法启动的方式,都有一个App的启动类,代码如下:

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

我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:

@SpringBootApplication
public class GardenplusCaseWebApplication extends SpringBootServletInitializer {
    /**
     * 重写方法
     * @param application
     * @return
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(GardenplusCaseWebApplication.class);
    }
}

 

2.4  打包部署

在项目根目录下(即包含pom.xml的目录),在命令行里输入:

mvn clean package即可, 等待打包完成,出现[INFO] BUILD SUCCESS即为打包成功。

然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署

或者到jar或war 包目录下执行 java -jar <name>.war,测试两种方式都行,注意tomcat的版本

最后在浏览器中输入

访问路径:http://localhost:端口号/war包的名称/请求的名

SpringBoot2.0 servlet.context-path = /projectName 已经失效

已经改为了:server.servlet.context-path  : /projectName

server.servlet-path设定dispatcher servlet的监听路径,默认为: 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值