zoukankan      html  css  js  c++  java
  • 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,使用上没什么区别。有对这方面研究较深的朋友,望不吝赐教。

  • 相关阅读:
    一个简单的CI分页类
    php版给UEditor的图片在线管理栏目增加图片删除功能
    PHP 中获取文件名及路径
    session共享
    linux进阶之Tomcat服务篇
    Linux进阶之环境变量文件/etc/profile、/etc/bashrc、/etc/environment
    shell应用之简单计算器
    Linux进阶之日志管理
    Linux进阶之LAMP和LNMP动态网站搭建
    linux进阶之子网划分
  • 原文地址:https://www.cnblogs.com/enenen/p/11703271.html
Copyright © 2011-2022 走看看