(六)常见插件解析
1 项目主类的运行与打包
常规的打包方式是只打包主项目的功能类,有时我们需要将依赖全部打进来,这时可用maven-shade-plugin插件。使用上,由于其只存在一个goal shade:shade,因此,只需将其绑定到phase package上。
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
2 测试类的打包
maven-assembly-plugin插件来定制化打包方式。该插件的使用有两种方式,一种是官方提供的定制化的打包方式,一种是自定义打包方式。
2.1 官方标准方式
使用descriptorRefs,可用jar-with-dependencies保证将相关依赖全部打进去。
2.2 自定义方式
id 标识符,添加到生成文件名称的后面,文件名为:${artifactId}.${version}-${id}
formats 指定打包格式,支持的打包格式包括zip、tar、war、jar等。
includeBaseDirectory 指定是否包含打包目录,如果定义了finalName标签值,首先文件名变为${finalName}-${id},其次,当includeBaseDirectory设置为true时会在压缩包根目录下创建finalName的文件夹,并将所有内容放置在该文件夹下。当设置为false时,表示将打包的所有文件直接放在包的根目录下。
dependencySets 指定压缩包中要包含的依赖及其包含方式(jar包/类)并确定存放路径
useProjectArtifact 确定当前项目生成的构件是否包含进去,默认为true
scope 依赖范围,默认为runtime
unpack 是否将依赖解压,默认为false
outputDirectory 以压缩包为根目录,设置以上构件在压缩包中的存放位置
fileSets 指定压缩包中要包含的文件并确定存放路径
directory 源目录
outputDirectory 目标目录(以压缩包为根目录的目标目录)
源目录中的
语法:该插件的single目标会作用在package阶段从而实现打包,其中打包方式通过xml文件自定义。
3 测试执行
test阶段默认与maven-surefire-plugin的test目标绑定,Maven执行测试用例时,是通过调用maven的surefire插件并fork一个子进程来执行用例的。forkMode指明是要为每个测试创建一个进程,还是所有测试在同一个进程中完成。常用取值包括:once、perfect。含义:
once:在一个进程中进行所有的测试
perfect:为每一个测试创建一个进程。
参数默认值是once。
有疑问欢迎留言