1. 程式人生 > >maven依賴servlet-api和jsp-api的問題

maven依賴servlet-api和jsp-api的問題

如果不配置scope,會把jar包釋出,會跟容器裡的jar包衝突

scope要用provided,由容器提供,不會發布

(或者不配這兩個依賴,在專案的Java Build Path的Libraries裡新增Server Runtime(Tomcat))

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>

Dependency Scope 

在POM 4中,<dependency>中還引入了<scope>,它主要管理依賴的部署。目前<scope>可以使用5個值: 

    * compile,預設值,適用於所有階段,會隨著專案一起釋出。 
    * provided,類似compile,期望JDK、容器或使用者會提供這個依賴。如servlet.jar。 
    * runtime,只在執行時使用,如JDBC驅動,適用執行和測試階段。 
    * test,只在測試時使用,用於編譯和執行測試程式碼。不會隨專案釋出。 
    * system,類似provided,需要顯式提供包含依賴的jar,Maven不會在Repository中查詢它。