學(xué)習(xí)完整課程請移步 互聯(lián)網(wǎng) Java 全棧工程師
本節(jié)視頻
什么是 Assembly Plugin
Assembly 插件目的是提供一個(gè)把工程依賴元素启上、模塊、網(wǎng)站文檔等其他文件存放到單個(gè)歸檔文件里店印。
Assembly 支持的歸檔文件類型
- zip
- tar.gz
- tar.bz2
- jar
- dir
- war
使用步驟
此處以將 SkyWalking 探針打包為 tar.gz
為例冈在,為后期持續(xù)集成時(shí)構(gòu)建 Docker 鏡像做好準(zhǔn)備
POM
在 pom.xml
中增加插件配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<!-- 配置執(zhí)行器 -->
<execution>
<id>make-assembly</id>
<!-- 綁定到 package 生命周期階段上 -->
<phase>package</phase>
<goals>
<!-- 只運(yùn)行一次 -->
<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
創(chuàng)建 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 壓縮包下是否生成和項(xiàng)目名相同的根目錄,有需要請?jiān)O(shè)置成 true -->
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<!-- 是否把本項(xiàng)目添加到依賴文件夾下照激,有需要請?jiān)O(shè)置成 true -->
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
<!-- 將 scope 為 runtime 的依賴包打包 -->
<scope>runtime</scope>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<!-- 設(shè)置需要打包的文件路徑 -->
<directory>agent</directory>
<!-- 打包后的輸出路徑 -->
<outputDirectory></outputDirectory>
</fileSet>
</fileSets>
</assembly>
打包
mvn clean package
mvn clean install
- package:會在 target 目錄下創(chuàng)建名為
skywalking-6.0.0-Beta.tar.gz
的壓縮包 - install:會在本地倉庫目錄下創(chuàng)建名為
hello-spring-cloud-external-skywalking-1.0.0-SNAPSHOT-6.0.0-Beta.tar.gz
的壓縮包