Maven自定义打包
<!--maven自定义打包插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.5.0</version>
<configuration>
<descriptors>
<!--具体的配置文件-->
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!--绑定到maven操作类型上-->
<phase>package</phase>
<!--运行一次-->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
assembly.xml
<assembly>
<!--
必须写,否则打包时会有 assembly ID must be present and non-empty 错误
这个名字最终会追加到打包的名字的末尾,如项目的名字为 hangge-test-0.0.1-SNAPSHOT,
则最终生成的包名为 hangge-test-0.0.1-SNAPSHOT-bin.tar.gz
-->
<id>bin</id>
<!-- 打包的类型,如果有N个,将会打N个类型的包 -->
<formats>
<format>tar.gz</format>
<!--<format>zip</format>-->
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<!--第三方依赖设置-->
<!--<dependencySets>
<dependencySet>
<!–使用项目中的artifact,第三方包打包进tar.gz文件的lib目录下–>
<useProjectArtifact>true</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>-->
<!--文件设置-->
<fileSets>
<!--
0755->即用户具有读/写/执行权限,组用户和其它用户具有读写权限;
0644->即用户具有读写权限,组用户和其它用户具有只读权限;
-->
<fileSet>
<directory>config</directory>
<outputDirectory>/config</outputDirectory>
</fileSet>
<!-- 服务脚本 -->
<fileSet>
<directory>script</directory>
<outputDirectory>script</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<directory>script</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>run.sh</include>
<include>run_cluster.sh</include>
</includes>
<fileMode>0755</fileMode>
</fileSet>
<!-- 将项目启动jar打包到lib目录中 -->
<fileSet>
<directory>target</directory>
<outputDirectory>bin</outputDirectory>
<includes>
<include>xxx-*.jar</include>
</includes>
</fileSet>
<!-- 将项目说明文档打包到docs目录中 -->
<fileSet>
<directory>docs</directory>
<outputDirectory>docs</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
</fileSets>
</assembly>