`
bolan392
  • 浏览: 273821 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Maven简介

阅读更多

Maven最初的目的是在Jakarta Turbine项目中使构建处理简单化。几个项目之间使用到的Ant build文件差异很小,各个JAR都存入CVS。因此希望有一个标准的方法构建各个工程,清晰的定义一个工程的组成,一个容易的方法去发布项目信息并且去提供一种在各个项目之间共享JAR包。

结果出现了一种功能能用于构建和管理任何基于java的工程。Maven小组希望他们已经做到了一些事情,这将有助于Java开发者更容易的完成每天的工作并且有助于理解任何基于java的项目。

Maven的目标是:

  • 使构建过程更容易

  • 提供统一构建系统

  • 提供高质量的项目信息

  • 提供开发的最佳实践指南

  • 能无缝的加入新的特性

Maven的错误理解

  • Maven是一个站点和文档制作工具。

  • Maven扩展了Ant,使其能下载到各种依赖包

  • Maven是一系列可重用的Ant脚本

Maven的版本。

Maven现在主要有Maven 1.xMaven 2.x,其中现在最新版本是Maven 2.02

Maven 2完成了对Maven 1的重写。重写的首要目的是要提供了强大的Jave构建和包含API的项目,允许Maven被植入任何地方,尤其是高级别的产品如IDEs、质量工具、报告工具等这些。Maven 2构建生命周期的概念正式化,其比Maven更易扩展。

因此现在我们主要研究的就是Maven 2

Maven的安装

  1. Windows 2000/xp下的安装

    1. 解压缩maven-2.0.2-bin.zip到你希望安装Maven 2.0.2的所在目录。这里假设你选择了C:\ProgramFiles\Apache Software Foundation\maven-2.0.2.

    2. C:\Program Files\Apache Software Foundation\maven-2.0.2\bin目录加入到你的%path%环境变量中。

    3. 同时,确认JAVA_HOME是否正确设置成功。

    4. 运行 mvn --version 确认是否安装成功。

显示Maven version: 2.0.2 则表示安装成功。

  1. 基于Unxibased的操作系统(LinuxSolaris and Mac OS X

    1. 解压缩发布包到你希望安装Maven 2.0.2的所在目录。这里假设你选择了/usr/local/maven-

    2. /usr/local/maven-2.0.2/bin目录加入到你的path环境变量中,例如:PATH=/usr/local/maven-2.0.2y/bin: $PATH

    3. 同时,确认JAVA_HOME是否正确设置成功。

    4. 运行 mvn --version 确认是否安装成功。

显示Maven version: 2.0.2 则表示安装成功。

Maven主要功能列表

Maven是一种对项目的管理工具,它提供了一种方式来管理以下项目中涉及到的工作内容,同时以下也是Maven的主要功能:

  • 构建项目(Builds

  • 文档编制(Documentation

  • 报告(Reporting

  • 依赖管理(Dependencies

  • 配置管理(SCMs

  • 发布管理(Releases

构建项目

  1. 首先创建一个Maven工程

Maven可用于构建java应用工程和java web应用工程。

  1.  
    1. WebApp

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

-DarchetypeArtifactId=maven-archetype-webapp

my-webapp

|-- pom.xml

`-- src

`-- main

|-- webapp

| |-- WEB-INF

| | `-- web.xml

| `--index.jsp

`-- resources

其他的目录则需要自己补充。

pom.xml文件内容如下:

<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.mycompany.app</groupId>

  <artifactId>my-webapp</artifactId>

  <packaging>war</packaging>

  <version>1.0-SNAPSHOT</version>

  <name>Maven Webapp Archetype</name>

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

<dependencies>

<dependency>

  <groupId>junit</groupId>

  <artifactId>junit</artifactId>

  <version>3.8.1</version>

  <scope>test</scope>

  </dependency>

  </dependencies>

<build>

  <finalName>my-webapp</finalName>

  </build>

  </project>

 

 

  1.  
    1. App

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

命令正确执行后,生成如下目录:

my-app

|-- pom.xml

`-- src

|-- main

| `-- java

| `-- com

| `-- mycompany

| `-- app

| `-- App.java

`-- test

`-- java

`-- com

`-- mycompany

`-- app

`-- AppTest.java

pom.xml文件内容如下:

<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.mycompany.ap</groupId>

  <artifactId>my-app</artifactId>

  <packaging>jar</packaging>

  <version>1.0-SNAPSHOT</version>

  <name>Maven Quick Start Archetype</name>

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

<dependencies>

<dependency>

  <groupId>junit</groupId>

  <artifactId>junit</artifactId>

  <version>3.8.1</version>

  <scope>test</scope>

  </dependency>

  </dependencies>

  </project>

 

 

  1. Maven项目的标准目录介绍

Maven提倡使用一个共同的标准目录结构,使开发人员能在熟悉了一个Maven工程后,对其他的Maven工程也能清晰了解。这样做也省去了很多设置的麻烦。

以下的文档介绍是Maven希望的目录结构,并且也是目录创建工程是采用的目录结构。Maven推荐大家尽可能的遵守这样的目录结构。

src/main/java

Application/Library sources

src/main/resources

Application/Library resources

src/main/filters

Resource filter files

src/main/assembly

Assembly descriptors

src/main/config

Configuration files

src/main/webapps

Web application sources

src/test/java

Test sources

src/test/resources

Test resources

src/test/filters

Test resource filter files

src/site

Site

LICENSE.txt

Project's license

README.txt

Project's readme

在顶级目录上是工程的描述文件pom.xml(如果使用Ant则还包括其他属性文件,maven.xmlbuild.xml,另外还包括提供给最终用户的文件,如,README.txt, LICENSE.txt等等。

 

顶级目录还包括两个子目录:srctarget。顶级目录下可能出现的其他目录仅仅是CVS.svn和其他多模块工程的工程目录,最好不要再有其他目录。

 

Target目录是所有工程编译构建的输出目录。

 

Src目录包含所有工程的源码文件,配置文件,资源文件等等。它下面的子目录一般包含main(主要的工程源文件),test(测试文件),site(项目站点文件)。

  1. 项目构建的生命周期的介绍

Maven 2是围绕着构建生命周期概念设计的。这意味着,构建或者发布的过程已经被清晰的定义了。

当我们使用Maven构建工程时,我们只需要了解几个Maven定义好的命令即可,其他的工作则交给POM来完成。

以下给出Maven提供的构建生命周期列表:

validate

validate the project is correct and all necessary information is available.

generate-sources

generate any source code for inclusion in compilation.

process-sources

process the source code, for example to filter any values.

generate-resources

generate resources for inclusion in the package.

process-resources

copy and process the resources into the destination directory, ready for packaging.

compile

compile the source code of the project.

process-classes

post-process the generated files from compilation, for example to do bytecode enhancement on Java classes.

generate-test-sources

generate any test source code for inclusion in compilation.

process-test-sources

process the test source code, for example to filter any values.

generate-test-resources

create resources for testing.

process-test-resources

copy and process the resources into the test destination directory.

test-compile

compile the test source code into the test destination directory

test

run tests using a suitable unit testing framework. These tests should not require the code be packaged or deployed.

package

take the compiled code and package it in its distributable format, such as a JAR.

pre-integration-test

perform actions required before integration tests are executed. This may involve things such as setting up the required environment.

integration-test

process and deploy the package if necessary into an environment where integration tests can be run.

post-integration-test

perform actions required after integration tests have been executed. This may including cleaning up the environment.

verify

run any checks to verify the package is valid and meets quality criteria.

install

install the package into the local repository, for use as a dependency in other projects locally.

deploy

done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

因此,当我们构建一个项目时,只需要了解自己希望做什么,然后执行以

分享到:
评论

相关推荐

    1.1.maven简介.mp4

    1.1.maven简介 1.2.maven的作用 1.3.maven的安装 2.项目案例 2.1.构建项目 2.2.项目拆分 3.聚合和继承 3.1.聚合 3.2.继承 4.maven高级特性 4.1.属性配置 4.2.版本管理 4.3.资源管理 5.私服 5.1.nexus安装 5.2.仓库的...

    maven笔记1.pdf

    maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装...

    Maven简介_SSH整合教程

    Maven教程

    构建工具:maven简介

    NULL 博文链接:https://java6ean.iteye.com/blog/1958897

    Eclipse整合Maven开发教程

    1. Maven简介 1 2. 安装Maven 1 3. 集成配置 4 3.1 让Eclipse支持集成Maven 4 3.2 增加Maven安装版本 5 3.3 配置Maven仓库 6 4. 开发应用 8 4.1 新建工程 8 4.2 Maven生命周期 13 4.3 Run As 15 4.4 ...

    高效构建Java应用:Maven入门和进阶

    - [一、Maven简介和快速入门](#一Maven简介和快速入门) - [1.1 Maven介绍](#11-Maven介绍) - [1.2 Maven主要作用理解](#12-Maven主要作用理解) - [1.3 Maven安装和配置](#13-Maven安装和配置) - [二、基于IDEA的...

    项目管理工具Maven从基础到高级应用视频教程

    1.Maven简介 2.下载与安装 3.Maven基础概念(重点) 4.第一个Maven项目(手工制作) (重点) 5.第一个Maven项目(IDEA生成)(重点) 6.依赖管理(重点) 7.生命周期与插件 8.分模块开发与设计(重点) 9.聚合...

    Maven实战 安装配置

    第1章 Maven简介3.1.1 何为Maven4.1.2 为什么需要Maven5.1.3 Maven与极限编程6.第2章 Maven的安装和配置7.2.1 在Windows上安装Maven8.2.2 在基于Unix的系统上安装Maven9.2.3 安装目录分析10.2.4 设置HTTP代理11.2.5 ...

    Maven实战- 入门

    第 1 章 Maven 简介 3. 1.1 何为 Maven 4. 1.2 为什么需要 Maven 5. 1.3 Maven 与极限编程 6. 第 2 章 Maven 的安装和配置 7. 2.1 在 Windows 上安装 Maven 8. 2.2 在基于 Unix 的系统上安装 Maven 9. 2.3 安装目录...

    Maven介绍与安装和配置

    Maven 简介 Maven 是一款基于 Java 平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,Maven 就可以自动完成项目的编译、测试、打包、发布以及...

    Maven实战(高清版)

    第1章 maven简介1.1 何为maven1.1.1 何为构建1.1.2 maven是优秀的构建工具1.1.3 maven不仅仅是构建工具1.2 为什么需要maven1.2.1 组装pc和品牌pc1.2.2 ide不是万能的1.2.3 make1.2.4 ant1.2.5 不重复发明...

    1Maven简介

    NULL 博文链接:https://qingchenghuanying.iteye.com/blog/1405781

    IDEA11 Maven3快速入门及应用

    Maven简介 Maven准备 Maven目录分析 Maven本地仓库 IDEA启用Maven功能 IDEA创建Maven工程 IDEA执行Maven命令 Maven配置POM 配置Maven远程仓库(私服)

    Maven使用实战-从入门到精通实践【张振华.Jack】

    Maven简介、Maven主要做什么用? 项目对象模型(POM) 坐标(Coordinates)、打包方式(Packaging)、项目描述 项目子父级关系(parent) 依赖管理(dependency),冲突了怎么办 组合及其继承(modules)、生命周期及阶段、常用...

    Maven介绍安装配置坐标依赖等等

    Maven简介,maven与ant比较,windows下安装配置,坐标依赖,仓库,部署第三方构建

    Maven使用讲解.ppt

    Maven使用讲解.ppt Maven简介及安装 Maven基本使用 Maven基本概念 POM介绍 Maven多模块项目 Maven插件应用 Maven仓库

    Maven教程.rar

    本压缩包中主要包含maven的学习教程,其中:maven简介,maven安装、入门程序、项目管理、依赖管理、工程调试、maven整合SSH、maven私服等

    Maven使用简介.zip

    Maven使用简介

    Maven使用课程

    Maven简介 Maven仓库 Maven的安装和配置 Maven的使用 何为Maven

    maven 培训

    Maven 学习 Maven简介 Maven安装 用maven创建第一个java工程 生成eclipse工程文件 下载maven的eclipse插件 导入工程

Global site tag (gtag.js) - Google Analytics