Maven使用介绍(四)
来源:互联网 发布:剑灵卡刀软件2017 编辑:程序博客网 时间:2024/06/05 10:23
packaging&plugin
plugin就是用来向maven提供goal的。一个plugin里面可以有多个goal,这就是为什么我们在指明goal时,前面会用一个冒号与plugin的名字。
一个plugin自己可以指定自己的goal绑定到哪个lifecycle的哪一个Phase上,另外也可以配置一个goal绑定到哪个phase上。可以在pom.xml里面配置。看两个配置:
<</code>plugin
>
<</code>groupId
>org.codehaus.modello</</code>groupId
>
<</code>artifactId
>modello-maven-plugin</</code>artifactId
>
<</code>version
>1.4</</code>version
>
<</code>executions
>
<</code>execution
>
<</code>configuration
>
<</code>models
>
<</code>model
>src/main/mdo/maven.mdo</</code>model
>
</</code>models
>
<</code>version
>4.0.0</</code>version
>
</</code>configuration
>
<</code>goals
>
<</code>goal
>java</</code>goal
>
</</code>goals
>
</</code>execution
>
</</code>executions
>
</</code>plugin
>
这个就在当前的lifecycle里面添加了一个名字叫java的goal,这goal会根据自己的配置去绑定到一个phase,在phase执行的时候这个goal会执行。并且在这个配置里面,可以指定多个execution来让这个goal执行多次。
看另一个示例配置:
<</code>plugin
>
<</code>groupId
>com.mycompany.example</</code>groupId
>
<</code>artifactId
>display-maven-plugin</</code>artifactId
>
<</code>version
>1.0</</code>version
>
<</code>executions
>
<</code>execution
>
<</code>phase
>process-test-resources</</code>phase
>
<</code>goals
>
<</code>goal
>time</</code>goal
>
</</code>goals
>
</</code>execution
>
</</code>executions
>
</</code>plugin
>
这个名为time的goal把自己绑定到了process-test-resource这个phase上。
在默认情况下,并不是所有的phase都绑定了goal,比如clean这个lifecycle是有三个phase的,但是只有其中的一个名为clean的phase默认绑定了一个clean:cleangoal,其它两个phase默认没有绑定任何goal。
之前已经提到过packaging,在pom.xml可以指定packaging,每种packaging都设定了一组phase和goal之间的绑定关系。在defaultlifecycle下,当packaging为 ejb/ejb3/jar/par/rar/war其中之一的值的时候,只有以下的phase绑定了goal,具体如下:
process-resourcesresources:resourcescompilecompiler:compileprocess-test-resourcesresources:testResourcestest-compilecompiler:testCompiletestsurefire:testpackagejar:jarinstallinstall:installdeploydeploy:deploy
总结
首先搞清楚maven的project的目录结构,然后理解maven的lifecycle,lifecycle是由buildphase组成,每一个build phase会绑定到goal。goal是由plugin提供的。每一种packaging的值都表明了一定的phase和goal之间的绑定关系。
另外一个很重要的就是dependency,我们要在项目中引用一个依赖,只需要在pom.xml指定依赖的名字和版本,maven会自动去远程的repository下载,然后放到本地的repository里面,这样以后所有的project都可以共用
其它细节可以参考http://maven.apache.org/guides/index.html。
- Maven使用介绍(四)
- maven(四)maven使用入门
- Maven使用介绍(一)
- Maven使用介绍(二)
- Maven使用介绍(三)
- Maven学习笔记(四)-----生命周期|POM常用元素介绍
- Maven学习(四)- 使用Maven构建Web项目-测试
- Maven学习(四)- 使用Maven构建Web项目-测试
- Maven学习(四)- 使用Maven构建Web项目-测试
- Maven学习(四)- 使用Maven构建Web项目-测试
- Maven学习(四)- 使用Maven构建Web项目-测试
- Maven学习 (四) 使用Nexus搭建Maven私服(WINDOWS)
- maven学习笔记(四) 使用maven命令创建项目
- Maven学习(四)- 使用Maven构建Web项目-测试
- maven使用入门介绍
- Maven 使用介绍
- Maven 介绍、安装使用
- maven使用入门介绍
- Android中关于SQLite的操作
- Eclipse下的java工程目录
- Maven使用介绍(一)
- Maven使用介绍(二)
- Maven使用介绍(三)
- Maven使用介绍(四)
- Jquery基础之DOM操作
- SSH
- Java注释规范
- Java反射机制
- Java反射机制例子(一)
- @RequestMapping 用法…
- PE文件
- JSP中的include的两种用法