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

一、最终打包的目录结构

spring boot打包,依赖、配置文件分离,拷贝启动脚本_第1张图片

 

 二、项目结构

spring boot打包,依赖、配置文件分离,拷贝启动脚本_第2张图片

 

三、开始

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

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

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

            <plugin>
                <artifactId>maven-clean-pluginartifactId>
                <version>2.5version>
                <executions>
                    <execution>
                        <id>auto-cleanid>
                        <phase>initializephase>
                        <goals>
                            <goal>cleangoal>
                        goals>
                        <configuration>
                            <skip>falseskip>
                            <filesets>
                                <fileset>
                                    <directory>${mzservice.path}directory>
                                fileset>
                            filesets>
                        configuration>
                    execution>
                executions>
            plugin>

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

            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-jar-pluginartifactId>
                <configuration>
                    
                    <archive>
                        <manifest>
                            <addClasspath>trueaddClasspath>
                            
                            <classpathPrefix>../lib/classpathPrefix>
                            
                            <useUniqueVersions>falseuseUniqueVersions>
                            <mainClass>com.mz.mzservice.MzServiceApplicationmainClass>
                        manifest>
                        <manifestEntries>
                            <Class-Path>../config/Class-Path>
                        manifestEntries>
                    archive>
                    
                    <excludes>
                        <exclude>*/*.xmlexclude>
                        <exclude>*/*/*.xmlexclude>
                    excludes>
                    <outputDirectory>${mzservice.path}/lib/outputDirectory>
                configuration>
            plugin>

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

            
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-dependency-pluginartifactId>
                <executions>
                    <execution>
                        <id>copy-dependenciesid>
                        <phase>packagephase>
                        <goals>
                            <goal>copy-dependenciesgoal>
                        goals>
                        <configuration>
                            <outputDirectory>
                                ${mzservice.path}/lib/
                            outputDirectory>
                        configuration>
                    execution>
                executions>
            plugin>

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

            
            <plugin>
                <artifactId>maven-resources-pluginartifactId>
                <executions>
                    <execution>
                        <id>copy-resourcesid>
                        <phase>packagephase>
                        <goals>
                            <goal>copy-resourcesgoal>
                        goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>src/main/resourcesdirectory>
                                resource>
                            resources>
                            <outputDirectory>${mzservice.path}/configoutputDirectory>
                        configuration>
                    execution>
                    
                    <execution>
                        <id>copy-binid>
                        <phase>packagephase>
                        <goals>
                            <goal>copy-resourcesgoal>
                        goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>bin/directory>
                                resource>
                            resources>
                            <outputDirectory>${mzservice.path}outputDirectory>
                        configuration>
                    execution>
                executions>
            plugin>

6、跳过测试

            
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-surefire-pluginartifactId>
                <configuration>
                    <skip>trueskip>
                configuration>
            plugin>

7、其它说明

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

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

 

你可能感兴趣的:(spring boot打包,依赖、配置文件分离,拷贝启动脚本)