spring boot打包,依赖、配置文件分离,拷贝启动脚本

一、最终打包的目录结构

二、项目结构

三、开始

1、最终打包的目录,可根据自己需要修改。

    <properties>
        <mzservice.path>${project.build.directory}/mzservice</mzservice.path>
    </properties>

2、配置清理插件,每次打包前,清理之前生成的打包目录。

            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>2.5</version>
                <executions>
                    <execution>
                        <id>auto-clean</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                        <configuration>
                            <skip>false</skip>
                            <filesets>
                                <fileset>
                                    <directory>${mzservice.path}</directory>
                                </fileset>
                            </filesets>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

3、打包自己的项目为jar并放入lib目录,不包含依赖。

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <!--<finalName>myjar</finalName>-->
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <!--MANIFEST.MF 中 Class-Path 加入前缀-->
                            <classpathPrefix>../lib/</classpathPrefix>
                            <!--jar包不包含唯一版本标识-->
                            <useUniqueVersions>false</useUniqueVersions>
                            <mainClass>com.mz.mzservice.MzServiceApplication</mainClass>
                        </manifest>
                        <manifestEntries>
                            <Class-Path>../config/</Class-Path>
                        </manifestEntries>
                    </archive>
                    <!--不打包资源文件-->
                    <excludes>
                        <exclude>*/*.xml</exclude>
                        <exclude>*/*/*.xml</exclude>
                    </excludes>
                    <outputDirectory>${mzservice.path}/lib/</outputDirectory>
                </configuration>
            </plugin>

4、将项目依赖的jar,复制到lib目录。

            <!--拷贝依赖 copy-dependencies-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>
                                ${mzservice.path}/lib/
                            </outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

5、将项目resources下的文件,复制到config下。将bin下的启动脚本复制到打包目录,可根据自己的需求修改。

            <!--拷贝资源文件 copy-resources-->
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>src/main/resources</directory>
                                </resource>
                            </resources>
                            <outputDirectory>${mzservice.path}/config</outputDirectory>
                        </configuration>
                    </execution>
                    <!--copy 脚本,把bin目录下的文件复制到,打包目录下-->
                    <execution>
                        <id>copy-bin</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>bin/</directory>
                                </resource>
                            </resources>
                            <outputDirectory>${mzservice.path}</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

6、跳过测试

            <!--maven打包时,跳过测试-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>

7、其它说明

网上有些其它文章会使用spring-boot-maven-plugin 这个插件打包项目jar,个人觉得这个插件是对其它插件的一些封装,打包的jar会包含spring boot的一些东西,

测试之后觉得和maven-jar-plugin打包的jar,使用上没什么区别。有对这方面研究较深的朋友,望不吝赐教。

原文地址:https://www.cnblogs.com/enenen/p/11703271.html

时间: 2024-10-07 22:13:24

spring boot打包,依赖、配置文件分离,拷贝启动脚本的相关文章

spring/boot 打包,资源/配置/业务文件分离

spring/boot打包,将业务jar包和资源配置文件进行分离打包,打包后的资源在target/release文件夹下面 注意:添加以下配置后,注意修改自己的入口类 <!--相关编译打包依赖--> <build> <plugins> <!--打包jar--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-p

spring boot打包以及centos下部署

spring boot打包以及部署 一.打包 springboot的打包方式有很多种.有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的.这里主要介绍如何打成jar进行部署.不推荐用war,因为springboot适合前后端分离,打成jar进行部署更合适. 需要在pom.xml中增加主程序入口 <build> <plugins> <plugin> <groupId>org.springframework.boot<

Spring Boot加载配置文件的完整步骤

这篇文章主要给大家介绍了关于Spring Boot加载配置文件的完整步骤,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 前言 本文针对版本2.2.0.RELEASE来分析SpringBoot的配置处理源码,通过查看SpringBoot的源码来弄清楚一些常见的问题比如: SpringBoot从哪里开始加载配置文件? SpringBoot从哪些地方加载配置文件? SpringBoot是如何支持yaml和proper

Spring boot 打包瘦身方法

背景 随着spring boot 的流行.越来越多的来发着选择使用spring boot 来发 web 应用. 不同于传统的 web 应用 需要 war 包来发布应用. spring boot 应用可以把整个项目打包成一个可执行的 jar .同时也导致 jar 越来越庞大. 对于现在高速迭代项目.上传如此庞大的 jar 对来发人员来说是一件极其痛苦的事情. 本章介绍如何将项目中变化的不大的 jar 提取到外部. 具体步骤: 1: 通常我们是用spring-boot-maven-plugin 进行

Spring Boot的properties配置文件读取

我在自己写点东西玩的时候需要读配置文件,又不想引包,于是打算扣点Spring Boot读取配置文件的代码出来,当然只是读配置文件没必要这么麻烦,不过反正闲着也是闲着,扣着玩了.具体启动过程以前的博客写过Spring Boot启动过程(一),这次入口在SpringApplication类中: private ConfigurableEnvironment prepareEnvironment( SpringApplicationRunListeners listeners, Application

Spring Boot(2):通过jar包启动

我们通过创建一个可以在Production env中运行的完全自包含的可执行jar文件来完成我们的示例.可执行jar(有时也称为"fat jars")是包含您编译的类以及您的代码需要运行的所有jar依赖项的归档文件. 本例是在 Spring Boot(1):Guide 的基础上继续写的. (1) 在Maven中添加以下依赖: 1 <!-- 可以打成可运行的jar包 --> 2 <build> 3 <plugins> 4 <plugin>

Spring Boot加载配置文件

问题1:Spring如何加载配置,配置文件位置? 1.默认位置: Spring Boot默认的配置文件名称为application.properties,SpringApplication将从以下位置加载application.properties文件,并把它们添加到Spring Environment中: 当前目录下的/config子目录, 当前目录. 一个classpath下的/config包 classpath根路径(root) 这个列表是按优先级排序的(列表中位置高的将覆盖位置低的).并

Spring boot打包为可部署在tomcat下运行的war文件的方法(使用Gradle、Intellij IDEA)

使用Gradle: dependencies { compile("org.springframework.boot:spring-boot-starter-web") providedCompile("org.springframework.boot:spring-boot-starter-tomcat")//此处使用providedCompile,则生成的jar包可放入tomcat内运行// compile("org.springframework.b

spring boot 之依赖

spring boot 虽然不强制使用特殊的依赖.但是其提供了一些非常高效的依赖.其中最有如下几个: spring-boot-starter-parent <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version&g