Maven dependency plugin使用心得总结

 更新时间:2023年10月17日 08:40:32   作者:拾年一剑  
这篇文章主要给大家介绍了关于Maven dependency plugin使用心得的相关资料,Maven是一个常用的Java build Manager,使用Maven可以很好的对Java Project的dependency进行管理,需要的朋友可以参考下

概要

Maven提供了很多的插件,具体有哪些插件,可以在官网上查到:

http://maven.apache.org/plugins/index.html

本篇博客主要是总结下对maven dependency插件的使用心得。

maven dependency插件的主要作用

它属于工具类的插件。它提供了操作构件(artifact)的能力,可以从本地或者远程仓库 复制或者解压特定构件到指定位置。

目标(goals)

Dependency插件支持许多目标(goals),可以参考下面链接:

http://maven.apache.org/plugins/maven-dependency-plugin/

这里呢,主要介绍copy和copy-dependencies、unpack、get这几个goals。

copy

通过在 pom.xml 文件中的插件配置处定义一系列构件,可以做到复制、重命名、指定版本等操作。它可以解决本地仓库或者项目中缺少某个构件文件的问题,并把它们放到指定位置。

插件配置细节可以看官网介绍在pom.xml中的配置参考如下:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.1.1</version>
        <executions>
          <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>[ groupId ]</groupId>
                  <artifactId>[ artifactId ]</artifactId>
                  <version>[ version ]</version>
                  <type>[ packaging ]</type>
                  <classifier> [classifier - optional] </classifier>
                  <overWrite>[ true or false ]</overWrite>
                  <outputDirectory>[ output directory ]</outputDirectory>
                  <destFileName>[ filename ]</destFileName>
                </artifactItem>
              </artifactItems>
              <!-- other configurations here -->
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

配置完,可以通过如下命令行执行:

mvn dependency:copy

copy-dependencies

作用:

从仓库中复制项目依赖的构件到指定位置。

插件配置细节可以看官网介绍在pom.xml中的配置参考如下:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.1.1</version>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
              <overWriteReleases>false</overWriteReleases>
              <overWriteSnapshots>false</overWriteSnapshots>
              <overWriteIfNewer>true</overWriteIfNewer>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

配置完,可以通过如下命令行执行:

mvn dependency:copy-dependencies

unpack

作用:

从仓库中抓取一系列构件,然后解压它们到指定位置。

插件配置细节可以看官网介绍在pom.xml中的配置参考如下:

<project>
   [...]
   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
         <version>3.1.1</version>
         <executions>
           <execution>
             <id>unpack</id>
             <phase>package</phase>
             <goals>
               <goal>unpack</goal>
             </goals>
             <configuration>
               <artifactItems>
                 <artifactItem>
                   <groupId>junit</groupId>
                   <artifactId>junit</artifactId>
                   <version>3.8.1</version>
                   <type>jar</type>
                   <overWrite>false</overWrite>
                   <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
                   <destFileName>optional-new-name.jar</destFileName>
                   <includes>**/*.class,**/*.xml</includes>
                   <excludes>**/*test.class</excludes>
                 </artifactItem>
               </artifactItems>
               <includes>**/*.java</includes>
               <excludes>**/*.properties</excludes>
               <outputDirectory>${project.build.directory}/wars</outputDirectory>
               <overWriteReleases>false</overWriteReleases>
               <overWriteSnapshots>true</overWriteSnapshots>
             </configuration>
           </execution>
         </executions>
       </plugin>
     </plugins>
   </build>
   [...]
 </project>

配置完,可以通过如下命令行执行:

mvn dependency:unpack

get

作用:

从指定的仓库解析单个构件(artifact),包括可传递性。

插件配置细节可以看官网介绍

操作命令如下:举例获得spring-core

mvn dependency:get -DgroupId=org.springframework -DartifactId=spring-core -Dversion=5.1.5.RELEASE transitive=true

其中,transitive=true 代表同时还要抓取该构件的依赖构件。

总结

maven提供了强大的插件功能,遇到任何不清楚地,可以去官网查找资料,然后本地尝试

到此这篇关于Maven dependency plugin使用心得总结的文章就介绍到这了,更多相关Maven dependency plugin内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Validation中的用户注册、JWT令牌之用户登入功能

    Spring Validation中的用户注册、JWT令牌之用户登入功能

    本文介绍了使用SpringValidation进行用户注册验证和JWT进行用户登录的方法,在用户注册时,通过@Validated注解和@Pattern注解对用户名和密码进行格式校验,并使用Result对象返回验证结果,感兴趣的朋友一起看看吧
    2024-11-11
  • java 使用正则表达式去除前后空格

    java 使用正则表达式去除前后空格

    这篇文章主要介绍了java 使用正则表达式去除前后空格,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • MyBatis-Plus分页插件不生效的解决方法

    MyBatis-Plus分页插件不生效的解决方法

    这篇文章主要介绍了MyBatis-Plus分页插件不生效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Mybatis中反向生成代码使用的实现

    Mybatis中反向生成代码使用的实现

    本文详细介绍了在Mybatis中使用代码反向生成器,包括generatorConfig.xml配置在Eclipse和IntelliJ IDEA环境下的设置,如何通过Maven导入依赖并执行多条件查询,
    2025-07-07
  • 详细介绍Java后端API接口开发规范

    详细介绍Java后端API接口开发规范

    在Java后端开发中,API接口的设计与开发至关重要,本文详细介绍了命名规范、接收参数规范、参数检验、接收方式规范、异常类处理、统一返回格式以及幂等性等方面的开发规范,提供了实际代码示例,需要的朋友可以参考下
    2024-10-10
  • Shiro与Springboot整合开发的基本步骤过程详解

    Shiro与Springboot整合开发的基本步骤过程详解

    这篇文章主要介绍了Shiro与Springboot整合开发的基本步骤,本文结合实例代码给大家介绍整合过程,感兴趣的朋友跟随小编一起看看吧
    2023-06-06
  • spring aop之链式调用的实现

    spring aop之链式调用的实现

    这篇文章主要介绍了spring aop之链式调用的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Springboot 上传文件或头像(MultipartFile、transferTo)

    Springboot 上传文件或头像(MultipartFile、transferTo)

    本文主要介绍了Springboot 上传文件或头像(MultipartFile、transferTo),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java中枚举的实现与应用详解

    Java中枚举的实现与应用详解

    这篇文章主要介绍了Java中枚举的实现与应用详解,EnumTest中还有一个VALUES数组,里面存储着所有的枚举实例,调用values方法时返回VALUES数组的clone,需要的朋友可以参考下
    2023-12-12
  • Java 反射(Reflect)详解

    Java 反射(Reflect)详解

    这篇文章主要介绍了JAVA 反射机制的相关知识,文中讲解的非常细致,代码帮助大家更好的理解学习,感兴趣的朋友可以了解下
    2021-09-09

最新评论