• <ol id="gebcs"></ol>
    <track id="gebcs"><i id="gebcs"></i></track>

    maven的pom 文件scope和exclusion標簽的作用

    時間:2022-09-08 09:25:20 類型:JAVA
    字號:    

      1.exclusion

      來排除一些不需要同時下載的依賴jar,可以用來解決 jar包沖突

     <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.10.0</version>
        <exclusions>
            <exclusion>
            <artifactId>log4j-api</artifactId>
            <groupId>org.apache.logging.log4j</groupId>
            </exclusion>
        </exclusions>
    </dependency>

    log4j-core本身是依賴了log4j-api的,但是因為一些其他的模塊也依賴了log4j-api,并且兩個log4j-api版本不同,所以我們使用<exclusion>標簽排除掉log4j-core所依賴的log4j-api,這樣Maven就不會下載log4j-core所依賴的log4j-api了,也就保證了我們的項目中只有一個版本的log4j-api。

    2. scope 依賴范圍來控制哪些依賴 在哪些classpath 中可用

       5個屬性值的含義

     

        compile,缺省值,適用于所有階段,會打包進項目。

        provided,類似compile,期望JDK、容器或使用者會提供這個依賴。

        runtime,只在運行時使用,如JDBC驅動,適用運行和測試階段。

        test,只在測試時使用,用于編譯和運行測試代碼。不會隨項目發布。

        system,類似provided,需要顯式提供包含依賴的jar,Maven不會在Repository中查找它。


    黄片基地 <