引入jar依賴卻無法import類

* compile,缺省值,適用於所有階段,會隨着項目一起發佈。 

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

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

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

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

 

今天遇到一個奇怪的問題 項目的路徑中有snakeyaml.jar的依賴 但是新建的類時候 卻無法引入Yaml這個類,

然後查了一下maven的依賴樹

mvn dependency:tree
....
[INFO] +- org.springframework.boot:spring-boot-starter:jar:1.5.19.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot:jar:1.5.19.RELEASE:compile
[INFO] |  \- org.yaml:snakeyaml:jar:1.17:runtime
....

如上圖 確實引入了 不過那個scope有問題 只有在runtime時可用 在編寫代碼是不可用的,因爲這個依賴是已經存在的 我們不需要額外引入 只需要修改一下scope就可以了

<dependency>
   <groupId> org.yaml</groupId>
   <artifactId>snakeyaml</artifactId>
   <scope>provided</scope>
</dependency>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章