maven-source-plugin
简介
maven-source-plugin是maven的官方插件,在使用时可以不用指定groupId。该插件主要用于将项目的源码同jar包一起打包安装,方便使用者查看代码的逻辑和注释
使用模板
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<configuration>
<!--源码包随着项目打成的jar包安装到本地仓库或者私服、公服-->
<attach>true</attach>
</configuration>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
maven-assembly-plugin
简介
maven-assembly-plugin是maven的官方插件,在使用时可以不用指定groupId。该插件主要用于将项目打包成归档文件(fat-jar)
使用模板
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<!--给jar包起的别名-->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!--默认打包之后的名称是xxxx-jar-with-dependencies.jar后缀,false表示去掉后缀-->
<appendAssemblyId>false</appendAssemblyId>
<!--该属性表示最终打成的包的名称-->
<finalName>test-depence-lyc</finalName>
<archive>
<manifestEntries>
<Premain-Class>com.xxx.performance.depence.Bootstrap</Premain-Class>
<Can-Redefine-Classes>true</Can-Redefine-Classes>
<Can-Retransform-Classes>true</Can-Retransform-Classes>
</manifestEntries>
<manifest>
<mainClass>com.xxx.performance.depence.TestEntry</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
maven-shade-plugin
简介
maven-shade-plugin是maven的官方插件,在使用时可以不用指定groupId。该插件可以制作归档文件(fat-jar)、包的重命名、配置文件追加等等,功能十分强大
使用模板
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<relocation>
<!--包重命名配置表示匹配到的包和重命名的包-->
<pattern>com.alibaba</pattern>
<shadedPattern>sharde.com.alibaba</shadedPattern>
</relocation>
</relocations>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Premain-Class>com.xxx.performance.depence.Bootstrap</Premain-Class>
<Agent-Class>com.xxx.performance.depence.Bootstrap</Agent-Class>
<Can-Redefine-Classes>true</Can-Redefine-Classes>
<Can-Retransform-Classes>true</Can-Retransform-Classes>
<mainClass>com.xxx.performance.depence.TestEntry</mainClass>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
maven-antrun-plugin
简介
maven-antrun-plugin是maven的官方插件,在使用时可以不用指定groupId。该插件用于创建指定目录,并把指定目录的文件拷贝到目标目录下
使用模板
XML
<!--创建指定目录并拷贝jar包到指定目录-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<!--在clean阶段删除dist目录-->
<execution>
<id>clean</id>
<phase>clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<delete dir = "${project.basedir}\dist"/>
</target>
</configuration>
</execution>
<!--在pack阶段创建dist目录-->
<execution>
<id>package</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<mkdir dir = "${project.basedir}\dist\"/>
<!--注意此处的参数:file填写源文件绝对路径 tofile是目标绝对路径+需要cp之后的文件名称-->
<copy file = "${project.build.directory}\test-depence-1.0-SNAPSHOT-jar-with-dependencies.jar" tofile = "${project.basedir}\dist\test-depence-1.0-SNAPSHOT-jar-with-dependencies.jar" overwrite = "true"/>
<mkdir dir = "${project.basedir}\dist\plugins"/>
</target>
</configuration>
</execution>
</executions>
</plugin>