Maven依賴Scope標籤用法

在一個maven項目中,若是存在編譯須要而發佈不須要的jar包,能夠用scope標籤,值設爲provided。以下:java

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
            <classifier />
        </dependency>api

scope的其餘參數以下:jsp

  • compile
    默認的scope,表示 dependency 均可以在生命週期中使用。並且,這些dependencies 會傳遞到依賴的項目中。適用於全部階段,會隨着項目一塊兒發佈maven

  • provided
    跟compile類似,可是代表了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。這個scope 只能做用在編譯和測試時,同時沒有傳遞性。????????ide

  • runtime
    表示dependency不做用在編譯時,但會做用在運行和測試時,如JDBC驅動,適用運行和測試階段。測試

  • test
    表示dependency做用在測試時,不做用在運行時。 只在測試時使用,用於編譯和運行測試代碼。不會隨項目發佈。spa

  • system
    跟provided 類似,可是在系統中要之外部JAR包的形式提供,maven不會在repository查找它。生命週期

相關文章
相關標籤/搜索