Maven的pom.xml配置詳解

個人博客原文鏈接

本次主要介紹瞭如何在IntelliJ IDEA中正確配置pom.xml文件,通常至少要包含三個部分:項目座標和模型版本、引入依賴的jar包、構建項目的配置。
關於Maven的安裝和環境配置可以參考我之前的文章:Maven入門學習

模型版本和項目座標

項目座標和模型版本

  1. 模型版本
    modelVersion:pom文件的模型版本
  2. 項目座標
    指的是項目在maven資源庫的座標,通過groupId + artifactId + version進行表示。
  • groupId:用於指定當前項目所屬的組,格式一般是com.組織名.項目名,如圖中的com.baidu.dcs。
  • artifactId:當前項目所屬組的唯一的ID號,如圖中的:maven-test
  • version:用於指定當前項目的版本編號。比如:1.0-SNAPSHOT。後面的SNAPSHOT指正在開發中的項目。

引入依賴的jar包

  1. 引入依賴的jar包

    • 配置依賴的JAR包信息,首先會從本地庫查找是否有該JAR,如果沒有,Maven會從遠程倉庫自動下載這個JAR到本地倉庫,下載完後,就可以在項目中使用這個JAR了。
    • 引入方法:在<dependencies></dependencies>標籤中配置需要的JAR包的項目座標信息
      Maven引入依賴的jar包
  2. 剔除想要排除的jar包
    如果想要排除引入的JAR包,可以使用<exclusions> </exclusions>
    <dependencies></dependencies>中添加

  <exclusions>
    <exclusion>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql</artifactId>
    </exclusion>
  </exclusions>
  1. 直接從Maven中心儲存庫獲取依賴包
    URL:mvn中心庫
    • 搜索指定的依賴包
    • 選擇需要的版本
    • 獲取到該依賴包的配置信息
    • 複製粘貼到pox.xml文件中
      具體事例:
 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>

構建項目的配置

  1. 項目構建,進行打包,使用<build></build>標籤進行配置

  2. 構建時,可以使用不同的插件,指定不同的功能,常用的功能由如下三種:

    • maven-assembly-plugin
      設置打包信息,生成的jar包的名稱是artifactId{artifactId}-{version}-jar-with-dependencies.jar

    • maven-compiler-plugin
      設置java的版本號

    • maven-resources-plugin
      設置項目的編碼格式

  3. 具體配置

    <build>
        <plugins>
            <!--插件1-->
            <!--打包配置的插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <!--官方提供的定製化打包方式,將所有依賴的jar包都添加到最終打的包裏-->
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <!--名字-->
                        <id>make-my-jar-with-dependencies</id>
                        <!--綁定到package生命週期階段上-->
                        <phase>package</phase>
                        <!--只執行一次-->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!--插件2-->
            <!--設置java版本爲1.8-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <!--插件3-->
            <!--設置編碼爲utf-8-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章