maven
idea集成maven插件
idea自帶maven插件,可以直接使用。
斷網時使用本地插件創建工程
-DarchetypeCatalog=internal
作用域
解決maven項目包衝突
<scope>provided<scope>
compile
默認scope爲compile,表示爲當前依賴參與項目的編譯、測試和運行階段,屬於強依賴。打包之時,會達到包裏去。
test
該依賴僅僅參與測試相關的內容,包括測試用例的編譯和執行,比如定性的Junit。
runtime
依賴僅參與運行週期中的使用。一般這種類庫都是接口與實現相分離的類庫,比如JDBC類庫,在編譯之時僅依賴相關的接口,在具體的運行之時,才需要具體的mysql、oracle等等數據的驅動程序。
此類的驅動都是爲runtime的類庫。
provided
該依賴在打包過程中,不需要打進去,這個由運行的環境來提供,比如tomcat或者基礎類庫等等,事實上,該依賴可以參與編譯、測試和運行等週期,與compile等同。區別在於打包階段進行了exclude操作
system
使用上與provided相同,不同之處在於該依賴不從maven倉庫中提取,而是從本地文件系統中提取,其會參照systemPath的屬性進行提取依賴
systemPath
當maven依賴本地而非repository中的jar包,sytemPath指明本地jar包路徑,例如
<dependency>
<groupid>org.hamcrest</groupid>
<artifactid>hamcrest-core</artifactid>
<version>1.5</version>
<scope>system</scope>
<systempath>${basedir}/WebContent/WEB-INF/lib/hamcrest-core-1.3.jar</systempath>
</dependency>
import
這個是maven2.0.9版本後出的屬性,import只能在dependencyManagement的中使用,能解決maven單繼承問題,import依賴關係實際上並不參與限制依賴關係的傳遞性
運行環境
pom文件:
<build>
<-!修改運行環境,避免使用使用默認的運行環境>
<build>