首頁 > 軟體

maven 解包依賴項中的檔案的解決方法

2022-07-15 14:05:55

Maven是什麼?

簡單來說Maven是java中的一種專案管理、專案構建、依賴管理的工具。

為什麼使用Maven?

因為Maven讓我們的專案帶來更多的方便,我們把所有的依賴放在Maven的依賴管理檔案中(pom),這樣Maven幫我們管理依賴。

Maven的作用是什麼?

Maven專案物件模型(POM),可以通過一小段描述資訊來管理專案的構建,報告和檔案的專案管理工具軟體。
Maven是一站式的專案的管理軟體,主要的功能:專案的建立、jar包管理、專案打包、釋出、部署等功能。

Maven的優點和缺點

優點:

  • 簡化了專案依賴管理
  • 便於專案升級,無論是專案本身升級還是專案使用的依賴升級
  • maven有很多外掛,便於功能擴充套件,eg:生產站點、自動釋出版本

缺點:

  • maven是一個龐大的構建系統,學習難度大
  • 雖然上手容易,但是一旦出了問題,難於偵錯
  • 當依賴很多時,m2eclipse老是搞得Eclipse很卡

下面看下maven 解包依賴項中的檔案的解決方法,內容如下所示:

外掛

maven-dependency-plugin:2.8

解包當前模組依賴的maven模組中的檔案

使用goal:unpack-dependencies
在設定引數includeArtifactIds中指定要解包的模組製件ID

<build>
	<plugins>
		<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack-dependencies</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>unpack-dependencies</goal>
                    </goals>
                    <configuration>
                        <includeArtifactIds>my-maven-module</includeArtifactIds>
                        <outputDirectory>${project.build.directory}/classes</outputDirectory>
                    </configuration>
                </execution>
			</executions>
        </plugin>
    </plugins>
</build>

解包指定maven模組中的檔案

使用goal:unpack
可以指定非當前模組所以來的maven模組

<build>
	<plugins>
		<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>org.my-project</groupId>
                                <artifactId>my-maven-module</artifactId>
                                <outputDirectory>${project.build.directory}/classes</outputDirectory>
                                <includes>lib/mylib.so</includes>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
			</executions>
        </plugin>
    </plugins>
</build>

到此這篇關於maven 解包依賴項中的檔案的文章就介紹到這了,更多相關maven 解包依賴項內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com