maven,['meɪv(ə)n],項目建構管理工具,用于告訴編譯器項目中各檔案之間的依賴關系等。
pom.xml 檔案指定了項目的依賴關系。
maven的倉庫分為本地倉庫和遠端倉庫。
本地倉庫:是maven在我們本機設定的倉庫目錄,預設目錄為 目前使用者目錄/.m2/repository。
遠端倉庫:聯網時才能用,從這裡下載下傳jar。
預設遠端倉庫因為通路量大,速度慢,是以可以自己臨時替換遠端倉庫位置。
.m2/ 目錄下有個settings.xml配置檔案,在<mirrors>節點内部增加<mirror>節點就可以了。
一個示例:
對eclipse中的maven插件有效。<mirror>配置修改實時生效,不需重新開機eclipse。
maven預設的檔案存放結構如下:
/項目目錄
pom.xml 用于maven的配置檔案
/src 源代碼目錄
/src/main 工程源代碼目錄
/src/main/java 工程java源代碼目錄
/src/main/resource 工程的資源目錄
/src/test 單元測試目錄
/src/test/java
/target 輸出目錄,所有的輸出物都存放在這個目錄下
/target/classes
編譯之後的class檔案
snapshot:如果一個版本包含字元串"snapshot",maven就會在安裝或釋出這個元件的時候将該符号展開為一個日期和時間值,轉換為utc時間。例 如,"1.0-snapshot"會在2010年5月5日下午2點10分釋出時候變成1.0-20100505-141000-1。
已有eclipse普通項目轉化為maven項目,右擊項目名,按照下圖3-1選擇。
圖 3-1
一個原本的maven項目是沒有.classpath與.project這些檔案的。是以在用eclipseide的時候要建立它們,可以用指令
mvn eclipse:eclipse 來生成這些檔案。
問:mvn eclipse:clean 與mvn clean 的差別是什麼?
答:前者是清除已有的.classpath與.project這些東西;後者是清除mvn在 target/ 目錄下面的一些東西。
從前到後依次是compile、test、package、install、deploy。
compile任務就是從src/main/java下編譯所有的java檔案,并把它的輸出class檔案存放到target/classes中。
本地的jdk是1.8,但目标伺服器的環境是jdk1.7,那麼就要指定編譯的版本,可用下面插件解決:
略。
打包。可參見插件 文章。
<a target="_blank" href="http://blog.csdn.net/chuchus/article/details/47100491">http://blog.csdn.net/chuchus/article/details/47100491</a>
将自己的項目打包進本地倉庫中。這樣自己的其他項目就可以依賴它了。
常見錯誤
[error] no compiler is provided in this environment. perhaps you are running on a jre rather than a jdk?
解決方法:library中的jre變成jdk,下圖:
附帶源碼
可以使用maven-source-plugin插件。
用于釋出到遠端倉庫。