附:Maven Assembly 插件

      • 什么是 Assembly Plugin

        Assembly 插件目的是提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。

        #Assembly 支持的归档文件类型

        • zip
        • tar.gz
        • tar.bz2
        • jar
        • dir
        • war

        #使用步骤

        此处以将 SkyWalking 探针打包为 tar.gz 为例,为后期持续集成时构建 Docker 镜像做好准备

        #POM

        pom.xml 中增加插件配置

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <executions>
                        <!-- 配置执行器 -->
                        <execution>
                            <id>make-assembly</id>
                            <!-- 绑定到 package 生命周期阶段上 -->
                            <phase>package</phase>
                            <goals>
                                <!-- 只运行一次 -->
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <finalName>skywalking</finalName>
                                <descriptors>
                                    <!-- 配置描述文件路径 -->
                                    <descriptor>src/main/resources/assembly.xml</descriptor>
                                </descriptors>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

        #assembly.xml

        创建 src/main/resources/assembly.xml 配置文件

        <assembly>
            <id>6.0.0-Beta</id>
            <formats>
                <!-- 打包的文件格式,支持 zip、tar.gz、tar.bz2、jar、dir、war -->
                <format>tar.gz</format>
            </formats>
            <!-- tar.gz 压缩包下是否生成和项目名相同的根目录,有需要请设置成 true -->
            <includeBaseDirectory>false</includeBaseDirectory>
            <dependencySets>
                <dependencySet>
                    <!-- 是否把本项目添加到依赖文件夹下,有需要请设置成 true -->
                    <useProjectArtifact>false</useProjectArtifact>
                    <outputDirectory>lib</outputDirectory>
                    <!-- 将 scope 为 runtime 的依赖包打包 -->
                    <scope>runtime</scope>
                </dependencySet>
            </dependencySets>
            <fileSets>
                <fileSet>
                    <!-- 设置需要打包的文件路径 -->
                    <directory>agent</directory>
                    <!-- 打包后的输出路径 -->
                    <outputDirectory></outputDirectory>
                </fileSet>
            </fileSets>
        </assembly>

        #打包

        mvn clean package
        mvn clean install
        • package:会在 target 目录下创建名为 skywalking-6.0.0-Beta.tar.gz 的压缩包
        • install:会在本地仓库目录下创建名为 hello-spring-cloud-external-skywalking-1.0.0-SNAPSHOT-6.0.0-Beta.tar.gz 的压缩包
上一篇:.net5 - 创建Web.Api项目(八)IOC依赖注入


下一篇:2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(3)