• 【01】Maven依赖插件之maven-dependency-plugin


    一、插件目标(goal)

    1、analyze:分析项目依赖,确定哪些是已使用已声明的,哪些是已使用未声明的,哪些是未使用已声明的

    2、analyze-dep-mgt:分析项目依赖,列出已解析的依赖项与dependencyManagement中定义的依赖项不匹配的部分

    3、analyze-report:生成项目报告

    4、analyze-duplicate:分析pom.xml中的<dependencies/><dependencyManagement/>标记,确定重复声明的依赖项

    5、build-classpath:告诉Maven以类路径格式从本地存储库输出依赖项的路径

    6、copy:将配置在插件中的jar包复制到指定位置

    7、copy-dependencies:将项目pom文件中定义的所有依赖及其传递依赖复制到指定位置

    8、display-ancestors:显示项目所有祖先pom

    8、get:从远程库中解析出一个构件

    9、go-offline:让maven解决该项目所依赖的所有内容,以准备脱机

    10、list:resolve的别名,列出项目的所有依赖项

    11、list-repositores:显示项目所有依赖项目,然后列出使用的存储库

    12、properties:包含文件系统上的工件的每个项目依赖项设置一个属性

    13、purge-local-repository:清除本地存储库中的依赖

    14、resolve:告诉Maven解析所有依赖项并显示版本。JAVA 9注意: 在使用Java 9运行时将显示模块名称。

    15、resolve-plugins:告诉Maven解决插件及其依赖项

    16、sources:告诉Maven解析所有依赖项及其源附件、并显示版本

    17、tree:显示该项目的依赖关系树

    18、unpack:解压缩

    19、unpack-dependencies:与copy-dependencies功能一致,只是会解压

    二、使用举例

    1、复制特定的构件(jar包)

    <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>
            </execution>
        </executions>
        <configuration>
            <artifactItems>
                <artifactItem>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>3.8.1</version>
                    <type>jar</type>
                    <overWrite>false</overWrite>
                    <!-- jar包的存放位置 -->
                    <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
                    <!--给jar包取别名 -->
                    <destFileName>optional-new-name.jar</destFileName>
                </artifactItem>
            </artifactItems>
            <outputDirectory>${project.build.directory}/wars</outputDirectory>
            <overWriteReleases>false</overWriteReleases>
            <overWriteSnapshots>true</overWriteSnapshots>
        </configuration>
    </plugin>

    2、复制所有的依赖jar包到指定位置 

    <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>
                    <!-- jar包存放位置 -->
                    <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
                    <overWriteReleases>false</overWriteReleases>
                    <overWriteSnapshots>false</overWriteSnapshots>
                    <overWriteIfNewer>true</overWriteIfNewer>
                </configuration>
            </execution>
        </executions>
    </plugin>

     若是以命令行执行,则改为以下配置:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.1.1</version>
        <configuration>
            <artifactItems>
                <artifactItem>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>3.8.1</version>
                    <type>jar</type>
                    <overWrite>false</overWrite>
                    <outputDirectory>target/sources</outputDirectory>
                    <destFileName>34.jar</destFileName>
                    <includes>**/*.class,**/*.xml</includes>
                    <excludes>**/*test.class</excludes>
                </artifactItem>
            </artifactItems>
            <!-- other configurations here -->
        </configuration>
    </plugin>

    3、解压所有依赖项

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.1.1</version>
        <executions>
            <execution>
                <id>unpack-dependencies</id>
                <phase>package</phase>
                <goals>
                    <goal>unpack-dependencies</goal>
                </goals>
                <configuration>
                    <includes>**/*.class</includes>
                    <excludes>**/*.properties</excludes>
                    <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
                    <overWriteReleases>false</overWriteReleases>
                    <overWriteSnapshots>true</overWriteSnapshots>
                </configuration>
            </execution>
        </executions>
    </plugin>
  • 相关阅读:
    linux运维 技能树
    ORACLE:毫秒与日期的相互转换,获取某天的信息
    Mybatis通用Mapper(转)
    Redis数据类型之散列类型hash
    Redis数据类型(字符串)
    Redis整理第三波(生存时间、事务管理)
    Redis整理第二波(启动、命令)
    非关系型数据库(NOSQL)-Redis
    冒泡排序,冒泡性能优化--java实现
    学习过的设计模式总结(分别从概念、分类、优缺点、应用、区别来说)
  • 原文地址:https://www.cnblogs.com/hqzmss/p/9837396.html
Copyright © 2020-2023  润新知