<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Maven – 父子 POM 示例 > 原文: [https://howtodoinjava.com/maven/maven-parent-child-pom-example/](https://howtodoinjava.com/maven/maven-parent-child-pom-example/) **Maven 父 POM** (或超級 POM)用于構造項目,以**避免重復或重復使用 pom 文件之間的*繼承配置***。 它有助于長期輕松維護。 如果在父 POM 和子 POM 中都使用不同的值配置了任何依賴項或屬性,則子 POM 值將具有優先級。 ```java Table of Contents Parent POM Contents Parent POM and Child POM Parent POM Relative Path Demo ``` ## 父 POM 內容 可以使用包`pom`聲明父 POM。 它不打算分發,因為僅從其他項目中引用了它。 Maven 父 pom 可以包含幾乎所有內容,并且可以繼承到子 pom 文件中,例如: * 通用數據 – 開發人員的姓名,SCM 地址,分發管理等 * 常數 – 例如版本號 * 共同的依賴項 – 所有子項共同的。 與在單個 pom 文件中多次寫入它們具有相同的效果。 * 屬性 – 例如插件,聲明,執行和 ID。 * 配置 * 資源 ## 父 POM 和子 POM 示例 為了匹配父 POM,Maven 使用兩個規則: 1. 在項目的根目錄或給定的相對路徑中有一個 pom 文件。 2. 子 POM 文件中的引用包含與父 POM 文件中所述相同的坐標。 #### 父 POM 此處,父 POM 為 JUnit 和 spring 框架配置了基本項目信息和兩個[依賴項](//howtodoinjava.com/maven/maven-dependency-management/)。 ```java <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd; <modelVersion>4.0.0</modelVersion> <groupId>com.howtodoinjava.demo</groupId> <artifactId>MavenExamples</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>MavenExamples Parent</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <junit.version>3.8.1</junit.version> <spring.version>4.3.5.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </project> ``` #### 子 POM 現在,子 POM 需要使用`parent`標簽并指定`groupId/artifactId/version`屬性來引用父 POM。 這個 pom 文件將從父 POM 繼承所有屬性和依賴項,并且還可以包括子項目特定的依賴項。 ```java <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <!--The identifier of the parent POM--> <parent> <groupId>com.howtodoinjava.demo</groupId> <artifactId>MavenExamples</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>MavenExamples</artifactId> <name>MavenExamples Child POM</name> <packaging>jar</packaging> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-security</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </project> ``` ## 父 POM 相對路徑 默認情況下,Maven 首先在項目的根目錄下查找父 POM,然后在本地倉庫中查找,最后在遠程倉庫中查找。 如果父 POM 文件不在任何其他位置,則可以使用代碼標簽。 該**相對路徑應相對于項目根**。 如果未明確給出相對路徑,則默認為`..`,即當前項目的父目錄中的 pom。 ```java <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <!--The identifier of the parent POM--> <parent> <groupId>com.howtodoinjava.demo</groupId> <artifactId>MavenExamples</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../baseapp/pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>MavenExamples</artifactId> <name>MavenExamples Child POM</name> <packaging>jar</packaging> </project> ``` ## 演示 讓我們學習創建具有父子關系的 Maven 項目。 #### 1)創建 Maven 父項目 項目創建向導。 ![Create Maven Project Wizard](https://img.kancloud.cn/15/1e/151ee74da8e434c561f3c48b0dd56046_598x373.png) Maven 項目創建向導 選擇項目原型。 ![Maven Quick Start Archtype](https://img.kancloud.cn/b7/03/b7039be3a3536d2441965ec39573f21f_694x479.png) Maven 快速啟動原型 填寫詳細信息并創建項目。 ![Create Maven Parent Project](https://img.kancloud.cn/fb/a4/fba483c870e1d09f12407caf293fbb5b_694x479.png) 創建 Maven 父項目 現在**在`pom.xml`中將包從 jar 更改為 pom**。 ```java <packaging>jar</packaging> //previous <packaging>pom</packaging> //New ``` 此外,添加項目屬性和依賴項。 ```java <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <junit.version>3.8.1</junit.version> <spring.version>4.2.3.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> </dependencies> ``` #### 2)創建 Maven 子項目 就像創建父項目一樣,創建一個新的 Maven 項目。 更改項目的特定詳細信息,例如名稱等。 ![Create Maven Child Project](https://img.kancloud.cn/3f/8c/3f8c63c20668fb6cb790281bb6eed296_698x415.png) 創建 Maven 子項目 現在,使用父級參考更新子項目的`pom.xml`文件。 ```java <!--The identifier of the parent POM --> <parent> <groupId>com.howtodoinjava.demo</groupId> <artifactId>MavenExamples</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> ``` 現在,您可以自由使用父 pom 的元素(例如屬性)。 您的子項目已繼承了父項目。 要對此進行測試,只需從子項目的`pom.xml`中刪除所有依賴項。 現在,在 Java 構建路徑中檢查它的庫。 您將在那里看到所有父級的依賴項。 ![Java Build Path of Child Project](https://img.kancloud.cn/a3/ef/a3effa83badf87a9b9b35f7cc5a24caf_573x411.png) 子項目的 Java 構建路徑 將我的問題放在評論部分。 學習愉快! 參考: [Maven 繼承](https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看