【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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM