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