- 浏览: 82374 次
- 性别:
- 来自: 上海
最新评论
-
surprising:
[color=darkred][/color]交换机
jdk rmi 代码分析 -
weibei:
what?
java.lang.reflect.Type
Maven的运行理念:
maven提供了一个平台,plugins能被这个平台所管理和利用,通过这些plugin根据平台所提供的项目信息来管理项目。(项目信息来源pom文件).
maven 默认情况对项目定义了3个项目管理周期
- default
- clean
- site
具体描述,大家可以在%M2_HOME%/lib/maven-2.0.9-uber.jar!/META-INF/plexus/components.xml
<lifecycle> <id>default</id> <phases> <phase>validate</phase> <phase>initialize</phase> <phase>generate-sources</phase> <phase>process-sources</phase> <phase>generate-resources</phase> <phase>process-resources</phase> <phase>compile</phase> <phase>process-classes</phase> <phase>generate-test-sources</phase> <phase>process-test-sources</phase> <phase>generate-test-resources</phase> <phase>process-test-resources</phase> <phase>test-compile</phase> <phase>process-test-classes</phase> <phase>test</phase> <phase>package</phase> <phase>pre-integration-test</phase> <phase>integration-test</phase> <phase>post-integration-test</phase> <phase>verify</phase> <phase>install</phase> <phase>deploy</phase> </phases> </lifecycle> <lifecycle> <id>clean</id> <phases> <phase>pre-clean</phase> <phase>clean</phase> <phase>post-clean</phase> </phases> <default-phases> <clean>org.apache.maven.plugins:maven-clean-plugin:clean</clean> </default-phases> </lifecycle> <lifecycle> <id>site</id> <phases> <phase>pre-site</phase> <phase>site</phase> <phase>post-site</phase> <phase>site-deploy</phase> </phases> <default-phases> <site>org.apache.maven.plugins:maven-site-plugin:site</site> <site-deploy>org.apache.maven.plugins:maven-site-plugin:deploy</site-deploy> </default-phases> </lifecycle>
每个phase绑定一些goal,这些goal就是在plugins中定义的。
Maven从命令行中运行有两种方式
- mvn 某一个phase
- mvn 某一个goal
当然可以是一组phase,或者一组goal,设置可以是一组phase和一组goal一起执行
Maven 运行一个phase
运行过程:
- 根据phase找到具体的lifecyle,并找到该lifecyle中该phase以前的所有phase集合并包括本身的phase
- 根据这些phase集合,绑定每个phase中plugins的goals集合,一些phase中邦定的goal是系统指定的,比如针对jar的项目
<lifecycle> <id>default</id> <phases> <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources> <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile> <process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources> <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile> <test>org.apache.maven.plugins:maven-surefire-plugin:test</test> <package>org.apache.maven.plugins:maven-jar-plugin:jar</package> <install>org.apache.maven.plugins:maven-install-plugin:install</install> <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy> </phases> </lifecycle>
- 用户也可以在相关的phase中指定自己的goal,在pom文件描述比如:
<build> <plugins> <plugin>***</plugin> <executions> <execution>**</execution> </executions> </plugins> </build>
- 这些goal运行都是一个线程,而且都是使用自己的classloader,都是maven平台的classloader的child.
Maven 运行一个goal
效果跟运行一个phase差不多,不过就是只是运行一个goal而已,当然我们也可以指定这个goal运行时,必须运
行其他的goal或者运行一个phase,这就是牵涉到maven-plugin开发
Maven plugins开发
maven plugins开发模式类似javadoc的annoation,当然如果你够猛,也可以直接写plugin.xml,因为这个东西是在
runtime过程中真正被maven用到的,不过maven可以根据plugin的annoation生产plugin.xml
每一个goal就是AbstractMojo的子类
他有以下annoation
@goal: 名称
@phase: 说明这个goal绑定的phase,当然这个是可以override
@execute goal="othergoal" 说明运行这个goal的时候,必须先运行othergoal
@execute phase="**" 说明运行这个goal的时候,必须先运行指定的phase
@execute lifecyle="**" phase="**" 跟上面差不多,不过这个phase在指定的lifecyle里面,lifecyle除了其他定义的,我们也可以定义自己的
发表评论
-
互联网相关 WEB Framework
2011-04-23 11:51 915由于很多原因,一般做互联网的,如果不考虑时间和资源 ... -
序列化相关
2011-04-18 12:13 817序列化 作用: 很显然就是,主要让对象可以在多个jvm ... -
互联网相关 request参数
2011-04-09 12:30 1200通常互联网请求包括两种类型 get,post,他们请求所带参数 ... -
互联网相关 URL编码
2011-04-09 10:53 793互联网 URL 按照标准,URL中只能出现US-ASCII字 ... -
Velocity 的好处
2011-04-07 15:12 1440真正意义的mvc 跟jsp相比,它算真正意义的mvc,因 ... -
Spring scheam中的p 属性
2011-03-29 12:04 919http\://www.springframework.org ... -
数据结构 相关知识
2011-03-29 11:40 732Stack last-in-first-out ,jdk ... -
java.lang.reflect.Type
2011-03-28 18:12 1434java.lang.reflect.Type: 什么是jav ... -
Thread 相关问题
2011-03-28 16:16 774Double-checked locking h ... -
互联网 相关安全问题
2011-03-25 17:58 869下面是一些互联网应用中可能遇到的一些安全问题 ... -
request.getRemoteAddr方法为null
2011-03-02 16:01 5472在单独servlet container 里,request ... -
equinox一个web应用的例子
2010-12-03 13:08 850这是我2008写的一个使用equinox的web的简单例子,个 ... -
JMX相关
2010-11-17 15:57 893建立一个MBeanServer 有两种类型 建立普通的 ... -
定制sql语句的方法
2010-11-16 10:17 974hibernate 定制sql语句的方法: sql ... -
关于hibernate batchsize一些分析
2010-09-26 10:31 1990关于hibernate batchsize一些分析: ... -
mysql 乱码问题
2010-08-10 12:27 604Mysql乱码问题: 主要是配置你的connection参数 ... -
Thread 分析
2010-07-22 11:54 779interrupt() 这个方法,一般情况把 ... -
Svn keywords
2010-05-27 20:22 1034Svn现在已经有点out了,p2p的技术现在是流行,连Apac ... -
jboss 代码分析
2010-04-30 15:25 895Jboss是一个j2ee服务器,使用它自己的ioc,也就是m ... -
annotation 的理解
2010-04-21 11:12 819Annotation: 表现形式,就是code中 @*** ...
相关推荐
6. **运行Maven任务**:现在你可以通过刚刚配置的外部工具来运行Maven命令,或者在MyEclipse的右键菜单中选择`Run As` -> `Maven Build`,然后输入你要执行的命令。 注意,由于Maven 2.0.9版本相对较旧,可能不支持...
4. **lib** 目录:包含了Maven运行所需的库文件,包括各种依赖的JAR包,如plexus容器、插件API和其他必需的库。 5. **plugins** 目录:虽然在Maven 2中,插件并不直接放在这个目录下,但这个目录可能包含了默认的...
** Maven 2.0.9 入门指南 ** Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它通过提供一套标准化的构建过程,使得开发者可以更方便地管理项目的依赖关系、构建流程以及资源文件。Maven 2.0.9 是 Maven...
在Maven 2.0.9中,POM的解析和处理能力得到了增强,使得开发者能够更精确地控制项目的构建过程。 1. **依赖管理**:Maven 2.0.9能自动解决项目间的依赖关系,通过中央仓库下载所需库文件,极大地减少了手动管理jar...
通过POM,Maven可以自动下载所需的库文件,处理构建过程中的各种任务,如编译源代码、运行测试、生成文档等。 在JAVA WEB 开发中,Maven 提供了对Servlet、JSP、EJB等Web组件的支持。开发者可以通过声明相应的插件...
3. **构建项目**:通过运行`mvn clean compile`命令,Maven会清理旧的构建产物,然后编译源代码。 4. **测试项目**:使用`mvn test`执行单元测试,并生成测试报告。 5. **打包项目**:`mvn package`命令会将编译后...
Maven 2.0.9版本虽然已经较为陈旧,但它奠定了后来版本的基础,对于理解和学习Maven的原理及工作方式仍然具有很高的价值。随着Maven的不断迭代,现在的最新版本提供了更多的功能和优化,但其核心理念和基本操作依然...
- **第2章:安装并运行Maven** - Java环境验证:确保用户已经正确安装了Java环境。 - Maven下载:提供Maven的官方下载链接。 - Maven安装指南:详细介绍如何在不同操作系统上安装Maven,包括Mac OS X、Microsoft ...
Maven 2.0.9是较早的版本,尽管现在已经有更新的版本,如Maven 3.x,但理解早期版本对于了解Maven的发展历程至关重要。 ** Maven 的核心概念 ** 1. **项目对象模型(Project Object Model, POM)**:POM是Maven的...
java运行依赖jar包
java运行依赖jar包
Maven 2.0.9版本与之前的Maven 1.x有很大的不同,它简化了项目构建过程,提供了更强大的依赖管理和项目信息管理。Maven通过使用标准化的目录结构和约定优于配置的原则,使得项目构建更加高效和一致。 2. Maven资源...
Maven version: 2.0.9 Java version: 1.6.0_07 OS name: "windows 2003" version: "5.2" arch: "x86" Family: "windows" ``` ##### 3.2 Linux环境 在Linux系统中,可以采用设置环境变量的方式来调整Maven的内存...
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包
Maven的最新版本为2.0.9,但需要注意的是,Maven2与早期的Maven1在很多方面存在显著差异,因此在查阅第三方文档时需明确区分这两个版本。 1. Maven资源: - Maven官方网站:获取最新版本、文档和社区支持。 - The...
Maven version: 2.0.9 Java version: 1.5.0_15 OS name: windows2000 OS version: 5.0 OS arch: x86 OS family: windows ``` #### 常用命令 1. **创建项目骨架:** - 使用 `mvn archetype:create` 命令...