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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Maven – 依賴管理 > 原文: [https://howtodoinjava.com/maven/maven-dependency-management/](https://howtodoinjava.com/maven/maven-dependency-management/) 在 Maven 中,依賴項是您當前項目為了編譯,構建,測試和/或運行而需要的另一個歸檔文件(JAR,ZIP 等)。 依賴項收集在`<dependency>`標簽內的`pom.xml`文件中。 當您運行構建或執行 Maven 目標時,將解決這些依賴項,然后從本地倉庫加載這些依賴項。 如果它們不存在,那么 Maven 將從遠程倉庫下載它們并將它們存儲在本地倉庫中。 您也可以手動安裝依賴項。 > 了解更多:[本地倉庫路徑](//howtodoinjava.com/maven/how-to-change-maven-local-repository-path-in-windows/) ```java Table of Contents Dependency Example External Dependency Dependency Tree Dependency Exclusion Artifact Version Ranges ``` ## Maven 依賴示例 在深入研究依賴管理之前,讓我們看一個簡單的示例,其中包含不同的元素,我們將在本文中討論。 ```java <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.5.RELEASE</version> </dependency> </dependencies> ``` 如果`pom.xml`指向同一`groupId`的許多工件,則應使用屬性以便分解代碼以便于維護。 ```java <properties> <junit.version>4.12</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> ``` ## 外部依賴 有時,您將必須引用不在 maven 倉庫(本地,中央或遠程倉庫)中的 jar 文件。 您可以通過將這些 jar 放在項目的`lib`文件夾中來使用它們,并配置外部依賴項,如下所示: ```java <dependency> <groupId>extDependency</groupId> <artifactId>extDependency</artifactId> <scope>system</scope> <version>1.0</version> <systemPath>${basedir}\war\WEB-INF\lib\extDependency.jar</systemPath> </dependency> ``` * `groupId`和`artifactId`都設置為依賴項的名稱。 * `scope`元素值設置為`system`。 * `systemPath`元素引用 JAR 文件的位置。 ## Maven 依賴樹 使用 maven 的`dependency:tree`命令,可以傳遞地查看項目中所有依賴項的列表。 傳遞依賴表示如果 A 依賴于 B 而 B 依賴于 C,則 A 依賴于 B 和 C。 當不同依賴項包含相同工件的不同版本時,傳遞性帶來了一個非常嚴重的問題。 它可能會在運行時導致**版本不匹配**問題。 在這種情況下,`dependency:tree`命令對于處理 JAR 沖突非常有用。 ```java $ mvn dependency:tree ``` 它以給定的格式輸出依賴項信息: ```java [INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ MavenExamples --- [INFO] com.howtodoinjava.demo:MavenExamples:jar:0.0.1-SNAPSHOT [INFO] +- junit:junit:jar:3.8.1:test [INFO] \- org.springframework:spring-core:jar:4.3.5.RELEASE:compile [INFO] \- commons-logging:commons-logging:jar:1.2:compile ``` 了解它如何通知 spring 依賴`commons-logging`。 同樣,您可以使用此命令獲取完整的傳遞依賴項信息。 ## Maven 依賴排除 除了由傳遞依賴引起的版本不匹配問題之外,項目工件和部署平臺(例如 Tomcat 或其他服務器)之間的工件之間可能存在**版本不匹配**。 為了解決此類版本不匹配的問題,maven 提供了`<exclusion>`標記,以打破傳遞依賴項。 例如,當您在類路徑中具有 JUnit4.12 并包括 DBUnit 依賴項時,則需要刪除 JUnit 3.8.2 依賴項。 可以使用`exclusion`標簽完成。 ```java <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.dbunit</groupId> <artifactId>dbunit</artifactId> <version>${dbunit.version}</version> <scope>test</scope> <exclusions> <!--Exclude transitive dependency to JUnit-3.8.2 --> <exclusion> <artifactId>junit</artifactId> <groupId>junit</groupId> </exclusion> </exclusions> </dependency> ``` ## 工件版本范圍 在包含依賴項的同時,您可以自由地為任何工件指定版本范圍。 要給出版本范圍,可以使用以下符號: * 括號符號`(`和`)`表示包含范圍 * 括號符號`[`和`]`表示排除范圍 * 逗號分隔的子集 #### 版本范圍示例 讓我們看一些示例,以更好地了解有關指定版本范圍的信息。 | 范圍 | 含義 | | --- | --- | | `1.2` | 等于 1.2 或以 1.2 開頭的版本 | | `(,1.2]` | 小于 1.2 的任何版本。 包含 1.2 版。 `x <= 1.2` | | `(,1.2)` | 小于 1.2 的任何版本。 1.2 版除外。 `x < 1.2` | | `[1.2]` | 僅限于 1.2 版。 `x == 1.0` | | `[1.2,)` | 任何大于 1.2 的版本。 包含 1.2 版。 `x >= 1.2` | | `(1.2,)` | 任何大于 1.2 的版本。 1.2 版除外。 `x > 1.2` | | `(1.2,2.2)` | 在 1.2 和 2.2 之間的版本。 兩者都排除在外。 `1.0 < x < 2.0` | | `[1.2,2.2]` | 在 1.2 和 2.2 之間的版本。 兩者都包括在內。 `1.2 <= x <= 2.2` | | `(,1.2],[2.2,)` | 小于 1.2 或大于 2.2 的版本。 兩者都包括在內。 `x <= 1.2 or x >= 2.2` | 將我的問題放在評論部分。 學習愉快!
                  <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>

                              哎呀哎呀视频在线观看