1. Maven是一個plugin 執行的架構,所有的工作都是由plugins完成的。
Maven 是基於一個build lifecycle 核心概念建立的。一個build lifecycle由很多phases構成,而一個 build phase是由plugin goals(插件的目標)組成的——短語和插件綁定。
a. 當一個短語執行時候,比如mvn clean 是通過執行clean plugin 的goals去完成的。
b. 當我們要爲自己的項目建立build lifecycle時,
方法一,用packaging plugins ,在pom中配置<packaging>
方法二,當項目需要哪個plugin時, 在pom的<build>部分中的<plugins>配置該<plugin>。
總之,用plugin的方法,一是在命令行直接用短語運行,二是在項目中,在pom文件中配置build中的plugins。
2. Pom中的配置包括project dependencies,需要被執行的plugins 或者goals 等。其他的信息包括project version,description,developers,mailing等。
3. Maven基於dependency mechanism
4. 創建ONOS的applicaion
a. 利用onos 自帶的腳本
onos-create-app
(等同於mvn archetype:generate -DarchetypeGroupId = org.onosproject -DarchetypeArtifactId=onos-bundle-archetype)
onos-create-app rest
b. 利用Maven
mvn archetype:generate
choose archetype { onos-bundle-archtype;
onos-api-archetype;
onos-cli-archetype;
onos-rest-archetype;
onos-ui-archetype;}
c. 如果想創建子模塊用IDEA
idea 裏面創建rest模塊:
new project mvn-archetype-quickstart
new module onos-archetype-rest
如果想在同一個目錄裏面創建cli模塊,
在父目錄下,用命令行mvn archetype:generate onos-archetype-cli
Archetypeid 和package都寫成一樣的
參考 http://maven.apache.org/archetype/maven-archetype-plugin/usage.html