首页 > 代码库 > maven实验

maven实验

ps:先水一把,快哭了2个月没更新了。最近在公司实习,看了webx框架,其中有一个maven工具(比较类似于ant,还是原来的项目分支,比ant强大一些),然后写了一个关于这个工具的大体流程。


什么是maven?

http://baike.baidu.com/view/336103.htm?fr=aladdin

maven的生命周期?

参考http://www.cnblogs.com/haippy/archive/2012/07/04/2576453.html



Default Lifecycle生命周期阶段描述
validate验证确保当前配置和 POM 的内容是有效的。这包含对 pom.xml 文件树的验证。
initialize初始化在执行构建生命周期的主任务之前可以进行初始化。
generate-sources生成源码代码生成器可以开始生成在以后阶段中处理或编译的源代码。
process-sources处理源码提供解析、修改和转换源码。常规源码和生成的源码都可以在这里处理。
generate-resources生成资源可以生成非源码资源。通常包括元数据文件和配置文件。
process-resources处理资源处理非源码资源。修改、转换和重定位资源都能在这阶段发生。
compile编译编译源码。编译过的类被放到目标目录树中。
process-classes处理类处理类文件转换和增强步骤。字节码交织器和常用工具常在这一阶段操作。
generate-test-sources生成测试源码mojo 可以生成要操作的单元测试代码。
process-test-sources处理测试源码在编译前对测试源码执行任何必要的处理。在这一阶段,可以修改、转换或复制源代码。
generate-test-resources生成测试资源

允许生成与测试相关的(非源码)资源。

process-test-resources处理测试资源可以处理、转换和重新定位与测试相关的资源。
test-compile测试编译编译单元测试的源码。
process-test-classes 对测试编译生成的文件做后期处理(需Maven2.0.5及以上)
test测试运行编译过的单元测试并累计结果。
prepare-package 执行打包前的所有操作(需Maven2.1及以上)
package打包将可执行的二进制文件打包到一个分布式归档文件中,如 JAR 或 WAR。
pre-integration-test前集成测试准备集成测试。这种情况下的集成测试是指在一个受到一定控制的模拟的真
实部署环境中测试代码。这一步能将归档文件部署到一个服务器上执行。
integration-test集成测试执行真正的集成测试。
post-integration-test后集成测试解除集成测试准备。这一步涉及测试环境重置或重新初始化。
verify检验检验可部署归档的有效性和完整性。过了这个阶段,将安装该归档。
install安装将该归档添加到本地 Maven 目录。这一步让其他可能依赖该归档的模块可以使用它。
deploy部署

将该归档添加到远程 Maven 目录。这一步让这个工件能为更多的人所用。

 

maven快速上手实验一把

1.下载maven,谷歌搜索下~

下载为apache-maven-3.2.3 文件

配置环境变量bin配置到path中

cmd下mvn v 命令测试下是否ok.

成功后,

内部有

bin(包括maven的一些命令),

boot(plexus-classworlds-2.5.1.jar 估计是预先处理类字节的jar包),

conf(配置项,包括日志等)

lib(函数支持库,以及扩展包等,增强功能用的)

2.

创建一个类似这样的目录结构

maven

     maven1202     

       src

            main

                 java

                     com

                          alibaba

                                maven

                                      Hello.java

            test

         pom.xml

---------------------

pom.xml内容,这个配置文件的详细介绍,参看http://blog.csdn.net/adeyi/article/details/17259479

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <!--项目属于哪一个组/公司/组织啥的-->
  <groupId>com.alibaba.maven</groupId>
  <!--本组织之类中唯一的ID-->
  <artifactId>maven1202</artifactId>
  <!--当前的版本号-->
  <version>1.0</version>
  <!--元素声明了一个对于用户更为友好的项目名字-->
	<name>maven</name>
</project>


3.cmd切换目录至maven1202

敲命令mvn compile进行mvn项目编译,时间有点长,耐心等待

编译完成后,在同src,pom.xml目录中,出现一个target目录,里面包含着编译之后的class文件(哎,这个编译实验原理不就是javac下maven目录并输出结果~)

4.继续敲命令mvn package对maven项目打包输出jar

这个输出jar的过程可能会出现erro,不过多试几次就行了~测试过程中第三次才ok

jar最终会输出在target目录中

5.敲命令

java -cp maven1202-1.0.jar com.alibaba.maven.Hello

输出Hello,java的内容,至此完成了maven的构建与输出


maven实验