maven打包插件——maven-dependency-plugin

说明

本文是对maven-dependency-plugin常用配置的介绍,更详细的学习请参照官网文档地址: Apache Maven Dependency Plugin
maven-dependency-plugin作用:依赖插件提供了操作构件的能力。它可以从本地或远程存储库复制或解压构件到指定位置。它有很多可用的goal,但是我们最常用到的是 dependency:copydependency:copy-dependenciesdependency:unpackdependency:unpack-dependencies这四个

1. 使用演示

此处演示常用的dependency:copydependency:copy-dependenciesdependency:unpack

1.1 插件声明

<build>
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-dependency-plugin</artifactId>
		<version>3.6.0</version>
	</plugin>
</build>

1.2 dependency:copy

它将从存储库中解析artifact,获取在插件配置部分定义的一系列构件,并将它们复制到指定的位置。如果需要,还可以重命名它们或去除版本号。如果远程仓库存在本地仓库不存在这些构件,该目标还可以从远程仓库解析这些构件。添加phase和goal如下
com.alibaba.fastjson拷到libs目录下:

<build>  
    <plugins>  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-dependency-plugin</artifactId>  
            <version>3.6.0</version>  
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.alibaba</groupId>
                                <artifactId>fastjson</artifactId>
                                <version>1.2.83</version>
                                <outputDirectory>${project.build.directory}/libs</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>  
    </plugins>  
</build>  

在这里插入图片描述

1.3 dependency:copy-dependencies

dependency:copy类似,只不过是将项目所有的依赖copy到指定的地方

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.6.0</version>
            <executions>
                <execution>
                	<!-- 任意名字 -->
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        <!-- 间接依赖也拷贝 -->
						<excludeTransitive>false</excludeTransitive>
						<!-- 带上版本号 -->
						<stripVersion>false</stripVersion>
						<!--覆盖发布工件-->
                		<overWriteReleases>false</overWriteReleases>
                		<!--覆盖快照项目-->
                		<overWriteSnapshots>false</overWriteSnapshots>
                		<!--覆盖不存在或比源文件更旧的构建产物-->
                		<overWriteIfNewer>true</overWriteIfNewer>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

在这里插入图片描述

1.4 dependency:unpack

官方释义:类似于复制,但会解包。简单理解就是把依赖jar解包复制,我们可以利用解包效果分离出一些依赖jar已经写好的脚本

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.6.0</version>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>package</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>org.slf4j</groupId>
                                <artifactId>slf4j-api</artifactId>
                                <version>1.7.36</version>
                                <outputDirectory>${project.build.directory}/unpack/slf4j</outputDirectory>
                            </artifactItem>
                            <artifactItem>
                                <groupId>com.alibaba</groupId>
                                <artifactId>fastjson</artifactId>
                                <version>1.2.83</version>
                                <outputDirectory>${project.build.directory}/unpack/fastjson</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

Maven插件是一种可插拔的工具,可以在Maven构建过程中执行特定的任务。其中,maven-dependency-pluginmaven-surefire-plugin是两个常用的插件maven-dependency-plugin插件可以用来管理项目依赖,可以帮助我们列出项目中的依赖关系,复制依赖文件到指定目录,解压依赖文件等。常用的配置包括: - list:列出项目依赖 - copy-dependencies:将所有依赖文件复制到指定目录 - unpack:解压指定的依赖文件 maven-surefire-plugin插件则是用来执行项目的单元测试的。它可以在Maven构建过程中自动执行单元测试,并生成测试报告。常用的配置包括: - includes/excludes:指定要执行的测试类或排除的测试类 - parallel:指定测试是否并行执行 - reportsDirectory:指定测试报告生成的目录 在POM文件中配置这两个插件,可以通过以下方式: ``` <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> <configuration> <includes> <include>**/*Test.java</include> </includes> <parallel>methods</parallel> <threadCount>10</threadCount> <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory> </configuration> </plugin> </plugins> </build> ``` 以上是一个简单的POM文件中Maven插件配置maven-dependency-pluginmaven-surefire-plugin的示例,其中maven-dependency-plugin在package阶段执行复制依赖文件的任务,maven-surefire-plugin在test阶段执行单元测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值