字意為:知識的累積者
- 標準化的建立專案,目的為一致的專案架構,統一的專案建構流程
- 不同的專案在code外有一套管理JARs的方式,能夠分享共同部分,補足差異檔案,且節省空間
- 用來建立專案的規則,包含原始檔案的相依性
- 自動測試與生成報告
- 從SVN GIT等取得原始碼
Pom:(Project Object Model)
- 專案建立標準化需要有共同的Metadata(對數據的一種說明),共同的目錄配置方式
- 舉例,像建立project物件,使用getXXX()取得資訊
- 格式為XML,能夠方便程式端的取用
- 格式內有
- <project> : 最上層的element
- <modelVersion>:哪一個model這個POM在使用,作為Maven驗證機制
- <groupId>:專案起始位置,如com.xxx
- <artifactId>:唯一可辨別的名字,這個名字是給產生的Jar檔使用的,會與版本變成一黨名 <artifactId>-<version>.<extension> (如, myapp-1.0.jar).
- <version>:專案版本,通常會加上-SNAPSHOT,表示最新的,但不保證是穩定會不會在改變(開發中,在release之前)。相反的,若不加上-SNAPSHOT,則表示此code不會再變動。也因此,版號也會
- <name> : 專案使用的名稱
- <url> : 專案的位址,通常會在Maven產生的文件中被使用到
- <description> : 專案描述,通常會在Maven產生的文件中被使用到
Artifact:
- 每個artifact都由以下三種組成唯一識別,需要使用的時候就需要放入repository
- groupId
- artifactId
- version
- 儲存Artifact
- 在pom聲明dependency後,就會去下載Artifact,供自己使用
- 自身開發的project也能夠使用mvn install放入Repository
目錄結構:
- src/main/java - application/library sources
- src/main/resources - application/library配置文件
- src/main/filters - resource filter files
- src/main/webapp - Web程式
- src/test/java - 測試資源
- src/test/resources - 測試配置文件
- src/test/filters - 測試resource filter files
- src/it - 使用integration test的plugins
- src/assembly - 組合descriptors
- src/stie - site
- LiCENSE.txt - 專案license
- NOTICE.txt - libraries使用的attributions即notice
- README.txt - 專案readme
- target - 所有build產生的output
- src/main : 主要build artiface
- src/test: unit test code或resources
Maven Command
以下為前置步驟:
以下為前置步驟:
- 至maven官網http://maven.apache.org/download.cgi下載apache-maven-3.5.2-bin.tar.gz
- 解壓縮至/usr/local/apache-maven-<version>
- 新增M2_HOME系統變數 export M2_HOME=/usr/local/apache-maven/apache-maven-<version>
- 新增M2系統變數 export M2=/usr/local/apache-maven/apache-maven-<version>
- 可選擇是否要新增MAVEN_OPTS系統變數,可以提供Maven額外的選擇 export MAVEN_OPTS="-Xms256m -Xmx512m" (ㄧInvalid maximum heap size: -Xmx512mi 的問題)
- 新增PATH export PATH=$M2:$PATH
- 確認JAVA_HOME JDK路徑設定正確 echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home 且必須確認PATH是否有包含$JAVA_HOME/bin的路徑
- 輸入 mvn --version 來卻確認版本
開始執行指令:
- 建立新的Maven project:
- mvn compile 能夠下載需要的plugins,及其他dependencies中需要的jar),有時會需要到4分鐘以上。若是第二次下此指令,則只會下載新加入需要下載的jar檔,則會比較快一點。
- mvn test 能夠執行maven的test
- 產生Jar檔並且安裝在local repository
mvn archetype:generate
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 16: //可回上面的地16行看新建的type為何,可以選擇行數變更archtype Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 1: 1.0 2: 1.1 Choose a number: 2: 2 //選擇版本 Define value for property 'groupId': com.test //groupId Define value for property 'artifactId': test //artifactId Define value for property 'version' 1.0-SNAPSHOT: : //snapshot版本 Define value for property 'package' com.test: : //package name,直接按enter就是預設 Confirm properties configuration: groupId: com.test artifactId: test version: 1.0-SNAPSHOT package: com.test Y: : //直接按enter確認
mvn compile
mvn test
mvn test-compile
mvn package
mvn install
沒有留言:
張貼留言