Spring Boot项目打包部署

**

Spring Boot项目打包部署

**
**

一、Jar包

**

1、打包时添加下面依赖代码
要添加启动类的信息,否则将会出现无主清单属性的错误。

<!-- 编译版本可以省略 -->
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
      <encoding>utf-8</encoding>
    </configuration>
  </plugin>
<!-- 指定App类 -->
  <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
      <mainClass>com.ykd.App</mainClass>
    </configuration>
    <executions>
      <execution>
        <goals>
          <goal>repackage</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

2、添加启动类

@EnableAutoConfiguration
@ComponentScan(basePackages = "com.ykd.web")
public class App
{
    public static void main(String[] args) {
        //启动springboot项目
        SpringApplication.run(App.class,args);
    }
}

3、打包
打包有两种方式
方式一:使用maven插件
在这里插入图片描述
方式二:使用maven命令:该方式需要配置环境变量,然后可以在项目目录或者IDEA的终端窗口继续命令打包。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、目录结构
在这里插入图片描述
org文件夹:存放一下启动加载项目的类
在这里插入图片描述
BOOT-INF文件夹:存放项目自定义的类以及所依赖的jar包
在这里插入图片描述
META-INF文件夹
在这里插入图片描述
1、\maven\com.ykd\springboot-test2\pom.properties:记录了一下项目的版本信息等
在这里插入图片描述
在这里插入图片描述
2、springboot-test2-1.0-SNAPSHOT.jar\META-INF\MANIFEST.MF:记录了项目一些文件的信息
在这里插入图片描述
4、注意事项
如果最后打包的项目发现缺少resources下的一些配置文件,或者缺少web.xml等文件时,我们可以手动的进行配置一下,提示maven将配置文件进行打包
在这里插入图片描述
在标签里进行配置

<resources>
  <resource>
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.xml</include>
      </includes>
  </resource>
  <resource>
    <directory>src/main/resources</directory>
    <includes>
      <include>**/*.*</include>
    </includes>
  </resource>
</resources>

5、打包后的Jar包可以用:命令行输入java -jar test.jar 运行即可
注意:用终端打开时,关闭服务的时候,要用ctrl+c 关闭服务,直接关闭窗口,服务会继续占用此端口。

**

二、war包

**
1、添加依赖

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion> 
      <groupId>com.ykd</groupId>
      <artifactId>robot</artifactId>
      <version>1.0</version>
      <packaging>war</packaging>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
    
      <!-- SpringBoot 父依赖 -->
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
      </parent>
    
    
      <dependencies>
    
        <!-- SpringBoot 配置web的依赖 -->
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 限制Spring内置的tomcat作用范围 -->
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
          <scope>provided</scope>
        </dependency>
        <!-- t提供servlet依赖 -->
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>3.1.0</version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    
      <build>
        <finalName>robot</finalName>
   

     <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
           <!-- 防止启动类无法扫描mapper.xml配置文件 -->
       <resources>
       	<resource>
     	   <directory>src/main/java</directory>
     	   <includes>
              <include>**/*.xml</include>
            </includes>
          </resource>
    	  <resource>
     	   <directory>src/main/resources</directory>
     	   <includes>
     	     <include>**/*.*</include>
     	   </includes>
    	  </resource>
    	</resources>
    
          <plugins>
            <plugin>
              <artifactId>mave

n-clean-plugin</artifactId>
              <version>3.1.0</version>
            </plugin>
            <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
            <plugin>
              <artifactId>maven-resources-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.8.0</version>
            </plugin>
            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>2.22.1</version>
            </plugin>
            <plugin>
              <artifactId>maven-war-plugin</artifactId>
              <version>3.2.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-install-plugin</artifactId>
              <version>2.5.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-deploy-plugin</artifactId>
              <version>2.8.2</version>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </project>

2、添加启动类

@EnableAutoConfiguration
@ComponentScan(basePackages = {"com.ykd.web","com.ykd.aspect"})
@MapperScan(value="com.ykd.web.mapper")
public class RobotApplication extends SpringBootServletInitializer {

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

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

3、打包
注意:War工程不用在Application.yml或者Application.properties中配置 项目名
在这里插入图片描述

4、部署tomcat
这里好像Spring Boot生成的war包,没法用 java -jar 命令进行发布,没有主清单信息,因此选择在tomcat上部署,将war包放在tomcat的webapps目录下,然后再启动tomcat进行访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值