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,使用上沒什么區別。有對這方面研究較深的朋友,望不吝賜教。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM