maven依賴servlet-api和jsp-api的問題
阿新 • • 發佈:2019-02-04
如果不配置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中查詢它。