maven-assembly-plugin插件
http://maven.apache.org/plugins/maven-assembly-plugin/usage.html
pom.xml配置
预置的Descriptor: http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html
<build>
<finalName>${project.name}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution><!-- 配置执行器 -->
<id>make-assembly</id>
<phase>package</phase><!-- 绑定到package生命周期阶段上 -->
<goals>
<goal>single</goal><!-- 只运行一次 -->
</goals>
</execution>
</executions>
<configuration>
<!--配置自定义描述符文件-->
<descriptors>
<descriptor>src/assembly/assembly.xml</descriptor><!--配置描述文件路径-->
</descriptors>
<appendAssemblyId>false</appendAssemblyId> <!--是否在最终的jar文件名中追加assembly.xml中的id-->
<!-- 也可以使用Maven预配置的描述符-->
<!-- <descriptorRefs>-->
<!-- <descriptorRef>jar-with-dependencies</descriptorRef>-->
<!-- </descriptorRefs>-->
<!--设置主类-->
<!-- <archive>-->
<!-- <manifest>-->
<!-- <!–运行jar包时运行的主类,要求类全名–>-->
<!-- <mainClass>com.PackageMergeMain</mainClass>-->
<!-- <!– 是否指定项目classpath下的依赖 –>-->
<!-- <addClasspath>true</addClasspath>-->
<!-- <!– 指定依赖的时候声明前缀 –>-->
<!-- <classpathPrefix>./</classpathPrefix>-->
<!-- </manifest>-->
<!-- </archive>-->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
assembly文件内容 (全集 http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html )
<assembly>
<id>kuiut-id</id>
<formats>
<format>jar</format><!--打包的文件格式,也可以有:war zip-->
</formats>
<!--tar.gz压缩包下是否生成和项目名相同的根目录,一般不需要包含-->
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<!--是否把本项目添加到依赖文件夹下-->
<!--如果需要包含工程自身生成的jar,则useProjectArtifact=false-->
<useProjectArtifact>false</useProjectArtifact>
<!--jar根目录下保存依赖的第三方jar包-->
<outputDirectory>/</outputDirectory>
<!--jar根目录下lib1目录中保存依赖的第三方jar包-->
<!-- <outputDirectory>./lib1</outputDirectory> -->
<!--将scope为runtime的依赖包打包-->
<!--<scope>runtime</scope>-->
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.directory}/test-classes</directory>
<outputDirectory>./</outputDirectory>
<includes>
<include>**/*.class</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
<fileSet>
<directory>${project.build.directory}/classes</directory>
<outputDirectory>./</outputDirectory>
<includes>
<include>**/*.class</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
<fileSet>
<directory>src/test/kuanrui-lib/oes</directory>
<outputDirectory>./</outputDirectory>
<includes>
<include>**/*.jar</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
<fileSet>
<directory>src/test/resources</directory>
<outputDirectory>config</outputDirectory>
<includes>
<include>**/*.json</include>
<include>**/*.xml</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
</fileSets>
</assembly>
其他解释:https://www.jianshu.com/p/529ebb3e785e