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>
相关推荐
BillKu16 分钟前
Java核心概念详解:JVM、JRE、JDK、Java SE、Java EE (Jakarta EE)
java·jvm·jdk·java ee·jre·java se·jakarta ee
刘婉晴1 小时前
【Java】NIO 简单介绍
java·nio
渣哥1 小时前
聊聊我和 ArrayList、LinkedList、Vector 的“一地鸡毛”
java
浮游本尊1 小时前
Java学习第20天 - 性能优化与监控
java
纪莫2 小时前
技术面:Java并发(线程同步、死锁、多线程编排)
java·java面试⑧股
衍余未了2 小时前
k8s 内置的containerd配置阿里云个人镜像地址及认证
java·阿里云·kubernetes
叽哥2 小时前
Kotlin学习第 4 课:Kotlin 函数:从基础定义到高阶应用
android·java·kotlin
渣哥2 小时前
使用 HashMap 提高性能的小技巧
java
kyle~2 小时前
排序---快速排序(Quick Sort)
java·开发语言
小蒜学长3 小时前
旅行社旅游管理系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·旅游