maven常用插件简介及配置模板

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>
相关推荐
少许极端10 分钟前
算法奇妙屋(七)-字符串操作
java·开发语言·数据结构·算法·字符串操作
懒羊羊不懒@13 分钟前
Java基础语法—字面量、变量详解、存储数据原理
java·开发语言
望获linux16 分钟前
【实时Linux实战系列】实时 Linux 的自动化基准测试框架
java·大数据·linux·运维·网络·elasticsearch·搜索引擎
Code blocks27 分钟前
GB28181视频服务wvp部署(一)
java·spring boot·后端
我命由我1234533 分钟前
Spring Boot - Spring Boot 静态资源延迟响应(使用拦截器、使用过滤器、使用 ResourceResolver)
java·spring boot·后端·spring·java-ee·intellij-idea·intellij idea
Xzh042339 分钟前
前后端学习的交界
java·ajax·maven·axios·测试
豆沙沙包?1 小时前
2025年--Lc201- 378. 有序矩阵中第 K 小的元素(排序)--Java版
java·线性代数·矩阵
华仔啊1 小时前
3 分钟让你彻底搞懂 Spring 观察者和发布者模式的本质区别
java·后端
没有bug.的程序员1 小时前
服务治理与 API 网关:微服务流量管理的艺术
java·分布式·微服务·架构·wpf
宠友信息1 小时前
java微服务驱动的社区平台:友猫社区的功能模块与实现逻辑
java·开发语言·微服务