maven中插件plugin和依赖dependency的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven中插件plugin和依赖dependency的区别相关的知识,希望对你有一定的参考价值。

很明显的一点就是插件是属于可插拔类型的,你可以直接在插件里面的属性里填上你需要的属性值,插件本身就帮你完成了,而dependency只是一个jar,具体的实现什么的需要你自己写代码去处理 参考技术A 插件是一种工具,例如compile插件是用来编译代码的工具,mybatis插件是用来自动生成数据库dao和mapper的工具。而依赖则是项目工程在编译过程中需要依赖的二方及三方包。在你的工程中可以不需要mybatis插件,自己去实现sql的crud,但如果工程里需要三房包,则必须要用dependency引入。

maven常用插件整理

1. 依赖管理插件:maven-dependency-plugin, 详见: https://maven.apache.org/plugins/maven-dependency-plugin/
通过该插件可以对被依赖组件进行复制,解压等一系列操作,特别是在多模块化项目中配置Spring自动扫描时该插件非常有用。
配置示例:

技术分享
 1 <build>
 2     <plugins>
 3         <!-- 将依赖模块的jar包文件提取出来放到指定位置 -->
 4         <plugin>
 5             <groupId>org.apache.maven.plugins</groupId>
 6             <artifactId>maven-dependency-plugin</artifactId>
 7             <executions>
 8                 <execution>
 9                     <id>unpack</id>
10                     <phase>prepare-package</phase>
11                     <goals>
12                         <goal>unpack</goal>
13                     </goals>
14                     <configuration>
15                         <artifactItems>
16                             <artifactItem>
17                                 <groupId>com.xxx</groupId>
18                                 <artifactId>xxx-xxx</artifactId>
19                                 <version>1.0.0</version>
20                                 <type>jar</type>
21                                 <includes>**/*.class</includes>
22                                 <overWrite>false</overWrite>
23                                 <outputDirectory>${project.build.directory}/classes</outputDirectory>
24                             </artifactItem>
25                         </artifactItems>
26                     </configuration>
27                 </execution>
28             </executions>
29         </plugin>
30     </plugins>
31 </build>
View Code

 

2. 打包插件: maven-assembly-plugin, 详见: http://maven.apache.org/plugins/maven-assembly-plugin/
maven项目压缩打包,可以将项目安装包打包为一个规范,专业的格式进行发布。
配置示例:

技术分享
 1 <build>
 2     <plugins>
 3         <!-- 部署打包: 通过maven-assembly插件压缩为tar包进行发布 -->
 4         <plugin>
 5             <artifactId>maven-assembly-plugin</artifactId>
 6             <configuration>
 7                 <!-- not append assembly id in release file name -->
 8                 <appendAssemblyId>false</appendAssemblyId>
 9                 <descriptors>
10                     <descriptor>assembly.xml</descriptor>
11                 </descriptors>
12                 <finalName>xxx-${project.version}</finalName>
13                 <outputDirectory>${basedir}/release</outputDirectory>
14             </configuration>
15             <executions>
16                 <execution>
17                     <id>make-assembly</id>
18                     <phase>verify</phase>
19                     <goals>
20                         <goal>single</goal>
21                     </goals>
22                 </execution>
23             </executions>
24          </plugin>
25     </plugins>
26 </build>
View Code

 

3. 资源插件: maven-resources-plugin, 详见: https://maven.apache.org/plugins/maven-resources-plugin/

 





以上是关于maven中插件plugin和依赖dependency的区别的主要内容,如果未能解决你的问题,请参考以下文章

maven常用插件整理

maven-dependency-plugin插件的使用

关于maven的规则插件:Maven Enforcer plugin

无法计算构建计划:无法解析插件 org.apache.maven.plugins:maven-resources-plugin:2.5 或其依赖项之一

无法计算构建计划:无法解析插件 org.apache.maven.plugins:maven-jar-plugin:2.3.2 或其依赖项之一

使用maven-shade-plugin插件解决spark依赖冲突问题