Chinaunix首页 | 论坛 | 博客
  • 博客访问: 182058
  • 博文数量: 88
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 914
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-10 13:41
文章分类

全部博文(88)

文章存档

2010年(2)

2009年(35)

2008年(51)

我的朋友

分类: Java

2008-07-21 22:05:44

1。maven是作什么的?
Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
2。
POM的内容:
 xsi:schemaLocation=\" http://maven.apache.org/maven-v4_0_0.xsd\">
 4.0.0
 com.mycompany.app
 my-app
 jar
 1.0-SNAPSHOT
 my-app
 
 
    
      junit
      junit
      3.8.1
      test
    

 


 
3。命令
创建项目
在命令行中执行以下(Maven 把它叫作goal)命令:
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app

如果你是首次运行该(goal)命令,maven将要花一些时间去把最新的工具包(Maven 把它叫作artifacts)下载到你的本地仓库(什么是本地仓库?先放着,稍后再作介绍)。你也许要执行很多次上面的命令才能成功,因为远程服务器有时可能连接不上或者超时。
命令执行完后你将看到maven生成了一个名为my-app的目录,这个名字就是你在命令中指定的artifactId,进入该目录,你将发现以下标准的项目结构:
D:\\MY-APP
│ pom.xml

└─src
    ├─main
    │ └─java
    │      └─com
    │          └─mycompany
    │              └─app
    │                      App.java
    │
    └─test
        └─java
            └─com
                └─mycompany
                    └─app
                            AppTest.java
 
其中,src/main/java 目录包含了项目的源代码,src/test/java 目录包含了项目的测试代码,pom.xml是项目的项目对象模型(Project Object Model or POM)

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app

其中archetype:create表示archetype插件下的create目标。这里,插件是为了某种目的构建的目标的集合,maven通过插件扩展其功能。

还可以为目标传递一些参数,比如上面的“-DgroupId=com.mycompany.app -DartifactId=my-app”。

Phase(s):阶段。表示maven 中的一个步骤。使用相位命令时,maven会执行生命周期中该阶段之前的所有命令,使项目处于指定的“状态”。

比如在刚才创建的项目路径下输入mvn compile,会创建target文件夹,并编译class,使项目处于“已编译”状态。

  • maven定义的生命周期中主要的相位如下:
  • validate: 验证项目是否正确以及相关信息是否可用。
  • compile: 编译。
  • test: 通过junit进行单元测试。
  • package: 根据事先指定的格式(比如jar),进行打包。
  • integration-test: 部署到运行环境中,准备进行集成测试。
  • verify: 对包进行有效性性和质量检查。
  • install: 安装到本地代码库。
  • deploy: 在集成或发布环境,将包发布到远程代码库。

在“默认”的生命周期之外,还有两个“阶段”:

  • clean: 清除以前的构建物。
  • site: 生成项目文档。

阶段实际上是通过目标的组合实现的。

4.组合命令

可以通过对目标及相位的组合使得一个命令完成多个功能,比如:

mvn clean dependency:copy-dependencies package

相当于按顺序执行

mvn clean

mvn dependency:copy-dependencies

mvn package


阅读(800) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~