maven初步

Maven是一个采用纯Java编写的开 源项目管理工具。Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理。而Maven本身还支持多种插件,可以方便更灵活的控制 项目。
Maven并不只是一个构建工具,她还可以提供:
1)声明式依赖性管理
2)集中的组件库管理
3)文档的自动生成
4)报告的自动生成

创建一个Maven项目

1) 下载Maven:http://maven.apache.org/
2) 解压缩下载的zip文件到本地目录下,比如:D:\Maven
3) 添加D:\Maven\bin到环境变量PATH中
4) 在命令行下运行:
mvn -version 或者 mvn -v
你应该看到如下图所示的Maven版本号:
maven初步_第1张图片
5)运行如下命令创建一个Maven项目:
命令行运行:mvn archetype:create -DgroupId=com.chm.test -DartifactId=hellomaven -Dversio=1.0.0
运行成功后会在当前目录下创建一个名为hellomaven的文件夹,目录结构如下:

maven约定目录结构
maven初步_第2张图片

初始化配置

  • 设置MAVEN_HOME环境变量
    升级时只需下载最新版本,解压后重新设置
  • 设置MAVEN_OPTS环境变量
    在使用maven时,如果报内存溢出,如使用 mvn site会耗费大量内存,则修改默认配置,修改apache-maven-3.0.5\bin\mvn.bat文件。
    在@REM set MAVEN_OPTS=……后加入
    set MAVEN_OPTS= -Xms128m -Xmx512m
  • 配置用户自己的settings.xml
    MAVEN_HOME/conf/settions.xml是全局的
    ~/.m2/settings.xml为用户自己的
    在配置文件中,有一项配置本地资源库的位置,
    默认为C:\Documents and Settings\%username%.m2\ repository,
    默认配置不是很合适,很不安全,重装系统及其容易被误删除。
    修改本地资源库保存路径为maven安装目录下:
    在D:/javaenv/apache-maven-3.0.5下创建repository目录
    修改全局setting.xml文件,
    < settings >下找到localRepository标签,默认为注释掉的,在该注释段之外添加
    < localRepository >D:/javaenv/apache-maven-3.0.5/repository < / localRepository >注意路径的斜杠。

POM.xml文件 (Project Object Model)

pom.xml 文件是maven对一个项目的核心配置,这个文件将包含你希望如何构建项目的大多数配置信息。POM大而复杂,但你不用全部去了解,只要使用一些常用的配置就可以了。下面列出这个POM的内容:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.chm.test</groupId>
  <artifactId>hellomaven</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>

  <name>hellomaven</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

1:project是所有pom.xml的根元素:它还声明了一些POM相关的命名空间及xsd元素,虽然这些属性不是必须的,但使用这些属性能够让第三方工具(如IDE中的XML编辑器)帮助我们快速编辑POM。
2:modelVersion>4.0.0/modelVersion>
根元素下的第一个子元素modelVersion指定了当前POM模型的版本,对于Maven2及Maven 3来说,它只能是4.0.0。

3:groupId,artifactId和version三行
pom.xml中最重要的是groupId,artifactId和version三行。这三个元素定义了一个项目基本的坐标,在Maven的世界,任何的jar、pom或者war都是以基于这些基本的坐标进行区分的。

3.1:groupId
定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联,譬如你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp。

3.2:artifactId
定义了当前Maven项目在组中唯一的ID,在前面的groupId为com.mycompany.app的例子中,你可能会为不同的子项目(模块)分配artifactId,如:myapp-util、myapp-domain、myapp-web等等。本例中artifactId 为 my-app

3.3:version
顾名思义,version指定了项目当前的版本。

运行Maven工具

打开dos命令行界面,进入到pom文件所在目录,执行命令mvn compile,命令执行完毕后创建一个target文件,并且把Java文件编译成class文件。再输入mvn package对象项目进行打包,执行完毕后,会在target文件夹下面生成一jar包:hellomaven-1.0.0.jar,然后再输入java -cp target/hellomaven-1.0.0.jar com.chm.test.App
打印结果信息:Hello World!
虽然很难列出一张非常全面的表,但在此可先列出最普通的默认的生命周期阶段:
validate:验证工程是否正确,所有需要的资源是否可用。
compile:编译项目的源代码。
test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
test-compile 只编译测试,不运行测试
package:把已编译的代码打包成可发布的格式,比如jar。
integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
verify:运行所有检查,验证包是否有效且达到质量标准。
install:把包安装在本地的repository中,可以被其他工程作为依赖来使用。
deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
clean:清除先前构建的artifacts,删除target目录(在maven中,把由项目生成的包都叫作artifact)。
site:为项目生成文档站点。 这个阶段生成基于pom.xml配置的项目信息。你可以在target/site目录下看到生成的文档。

你可能感兴趣的:(maven)