Maven(工作Session)

来源:互联网 发布:数据开放平台浏览器 编辑:程序博客网 时间:2024/05/21 17:24
Maven约定优先于配置,默认情况下有放文件的位置,约定俗成的
Maven面向接口的典范: lifecycle, 按照里面执行,具体里面做什么通过配置文件执行
Maven相关插件: core只是执行Lifecycle每一部分,具体什么插件做,所以升级时,不需要更新整个maven,更新相应的插件就好
POM: maven做什么根据pom的内容
Ant: 与maven互补  Ant没有约定俗成的东西
pluginGroup 里面配置了两个xml用来, 命令敲什么前缀,对应的是哪一个plugin


Maven构成
goal: 最小的工作单元,一个plugin有多个goal
phrase: clean,含有多个plugin, 之前的都会执行,每次都从头开始。 goal 绑定到某个phase.goal是灵活的,由象限指定做什么
lifecycle: 含有多个phrase
坐标: groupId, artifactId,packaging(jar),version 唯一确定的。 
Repos 根据以上组织url, 这样就可以找到(snapshot每次拿最新的,开发用)  deploy 会到maven Repos里hadson
Dependency:pom都有继承关系,关联关系在pom里定义
1) pom都有继承关系: maven有一个super pom(java:object)
2) 工作的pom是merge完以后的结果,super pom 以及自己项目的parent pom整合完整以后执行
   Version管理: 怎么知道最新 1.2.3-alpha-2 ~ 1.2.3-alpha-10  最后一位按字符,其余按数字  所以02---10才可以,不能2
3)5种:compile(default), test, provided 打包不打,编译需要,runtime(api+impl) API,别的子的model就可以直接编译了,会更快实现之后再说,system(systemPath)
   optional=true不会多级传递依赖 VS Dependency->exclusions
How Scope Affects Transitive Dependencies
A -TEST-> B(基石) -COMPILE->C(基石) -->test
Inheritance VS Multiple Modules
Inheritance两层,checkout每个模块都可以工作 Multiple Modules 编译时好编译,虽然在那个文件夹下,但是无父子关系


Lifecycle Phrase
● clean
○ pre-clean
○ clean
○ post-clean
● default
○ next sides..
● site
○ pre-site
○ site
○ post-site
○ site-deploy


mvn clean install  clean phase and install phase




<execution>
<id>file-exists</id>
 <phase>pre-clean</phase>
 <goals>
 <goal>run</goal>
 </goals>
 <configuration>
 
 run 的 goal  绑定在pre-clean
 
 what's the differnece between mvn clean and mvn clean:clean?
 mvn clean 从头执行 pre-clean  
 mvn clean:clean  只会执行 clean phase里的clean
 
 profile   看执行哪个


原创粉丝点击