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
的压缩包