maven 解包依賴項中的文件的解決方法

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 解包依賴項內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: