欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringCloud maven-assembly-plugin 多級(jí)目錄打包的實(shí)現(xiàn)

 更新時(shí)間:2021年10月27日 10:48:29   作者:Mr-Wanter  
本文主要介紹了SpringCloud maven-assembly-plugin 多級(jí)目錄打包的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1、spring-boot-maven-plugin

springboot默認(rèn)打包工具為spring-boot-maven-plugin

pom配置:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <mainClass>com.gsafety.bg.enterprise.EnterpriseApplication</mainClass>
        <layout>ZIP</layout>
        <!-- 打增量包時(shí)需要includes部分, 要打全量包刪除includes -->
        <includes>
            <include>
                <groupId>com.gsafety.bg</groupId>
                <artifactId>enterprise-controller</artifactId>
            </include>
            <include>
                <groupId>com.gsafety.bg</groupId>
                <artifactId>enterprise-service</artifactId>
            </include>
            <include>
                <groupId>com.gsafety.bg</groupId>
                <artifactId>enterprise-dao</artifactId>
            </include>
        </includes>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

打包后的目錄結(jié)構(gòu):

在這里插入圖片描述

BOOT-INF內(nèi)包含目錄:lib(enterprise-service-1.0.0.jar、enterprise-dao-1.0.0.jar、enterprise-controller-1.0.0.jar)、classes、classpath.idx

2、maven-assembly-plugin

maven-assembly-plugin 插件的主要作用是允許用戶將項(xiàng)目輸出與它的依賴項(xiàng)、模塊、站點(diǎn)文檔、和其他文件一起組裝成一個(gè)可分發(fā)的歸檔文件,簡(jiǎn)單的說,就是自定義打包的工具,有自己的配置文件(Assembly描述符文件)。微服務(wù)使用這個(gè)插件的概率比較高,平時(shí)普通的項(xiàng)目不需要這樣的實(shí)現(xiàn)方式。

pom配置:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4.1</version>
    <configuration>
        <finalName>enterprise</finalName>
        <encoding>utf-8</encoding>
        <descriptors>
            <descriptor>src/main/assembly/assembly.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

assembly.xml

全部可設(shè)置節(jié)點(diǎn)可參考官網(wǎng):http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

<assembly>
    <id>1.0</id>
    <formats>
        <format>tar.gz</format>
    </formats>

    <includeBaseDirectory>true</includeBaseDirectory>
    <!--    項(xiàng)目所需lib包-->
    <!--    <dependencySets>-->
    <!--        &lt;!&ndash;把依賴都打包進(jìn)libs文件夾&ndash;&gt;-->
    <!--        <dependencySet>-->
    <!--            <useProjectArtifact>true</useProjectArtifact>-->
    <!--            <outputDirectory>libs</outputDirectory>-->
    <!--            <scope>runtime</scope>-->
    <!--        </dependencySet>-->
    <!--    </dependencySets>-->
    <fileSets>
        <!--打包啟動(dòng)文件到deploy目錄-->
        <fileSet>
            <!--需要打包的文件所在目錄 即start.sh-->
            <directory>src/main/assembly/bin</directory>
            <!--要打包到的地址-->
            <outputDirectory>deploy</outputDirectory>
            <!--linux權(quán)限-->
            <fileMode>0755</fileMode>
        </fileSet>
        <!--打包可執(zhí)行jar到application-server目錄-->
        <fileSet>
            <directory>target</directory>
            <outputDirectory>application-server</outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
        </fileSet>
        <!--打包src/main/resources到logs/enterprise目錄-->
        <fileSet>
            <directory>src/main/resources</directory>
            <outputDirectory>logs/enterprise</outputDirectory>
            <fileMode>0755</fileMode>
            <!--打包不包含src/main/resources所有文件,即生成logs/enterprise空目錄-->
            <excludes>
                <exclude>**/*</exclude>
            </excludes>
        </fileSet>
    </fileSets>
</assembly>

打包后的目錄結(jié)構(gòu):

在這里插入圖片描述

查看application-server文件夾內(nèi)可執(zhí)行文件解壓目錄:

在這里插入圖片描述

發(fā)現(xiàn)與spring-boot-maven-plugin打包后的目錄不一致,明顯缺少lib內(nèi)的三個(gè)jar和其他一些文件

3、maven-assembly-plugin打包后的可執(zhí)行文件缺失lib問題

修改pom文件:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.gsafety.bg.enterprise.EnterpriseApplication</mainClass>
                <layout>ZIP</layout>
                <!-- 打增量包時(shí)需要includes部分, 要打全量包刪除includes -->
                <includes>
                    <include>
                        <groupId>com.gsafety.bg</groupId>
                        <artifactId>enterprise-controller</artifactId>
                    </include>
                    <include>
                        <groupId>com.gsafety.bg</groupId>
                        <artifactId>enterprise-service</artifactId>
                    </include>
                    <include>
                        <groupId>com.gsafety.bg</groupId>
                        <artifactId>enterprise-dao</artifactId>
                    </include>
                </includes>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
		<!-- 生成項(xiàng)目依賴到lib本地,并設(shè)置需要排除的jar-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>../../../lib</outputDirectory>
                        <!-- 需要排除的jar的 groupId -->
                        <excludeArtifactIds>
                            enterprise-controller,enterprise-service,enterprise-dao
                        </excludeArtifactIds>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <finalName>enterprise</finalName>
                <encoding>utf-8</encoding>
                <descriptors>
                    <descriptor>src/main/assembly/assembly.xml</descriptor>
                </descriptors>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

即plugins先引用spring-boot-maven-plugin 后引用maven-assembly-plugin,這樣spring-boot-maven-plugin會(huì)將enterprise-service-1.0.0.jar、enterprise-dao-1.0.0.jar、enterprise-controller-1.0.0.jar三個(gè)jar打包到lib中,打包后maven-assembly-plugin就會(huì)將其打包進(jìn)enterprise-1.0.tar.gz。

這樣enterprise-1.0.tar.gz內(nèi)就包含了啟動(dòng)文件(deploy)、可執(zhí)行文件(application-server/enterprise-main-1.0.0.jar)、日志目錄(logs/enterprise),符合目前項(xiàng)目部署的目錄結(jié)構(gòu)。

在這里插入圖片描述

到此這篇關(guān)于SpringCloud maven-assembly-plugin 多級(jí)目錄打包的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SpringCloud maven-assembly-plugin 多級(jí)目錄打包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論