Maven最初的目的是在Jakarta Turbine项目中使构建处理简单化。几个项目之间使用到的Ant build文件差异很小,各个JAR都存入CVS。因此希望有一个标准的方法构建各个工程,清晰的定义一个工程的组成,一个容易的方法去发布项目信息并且去提供一种在各个项目之间共享JAR包。
结果出现了一种功能能用于构建和管理任何基于java的工程。Maven小组希望他们已经做到了一些事情,这将有助于Java开发者更容易的完成每天的工作并且有助于理解任何基于java的项目。
Maven的目标是:
-
使构建过程更容易
-
提供统一构建系统
-
提供高质量的项目信息
-
提供开发的最佳实践指南
-
能无缝的加入新的特性
对Maven的错误理解
-
Maven是一个站点和文档制作工具。
-
Maven扩展了Ant,使其能下载到各种依赖包
-
Maven是一系列可重用的Ant脚本
Maven的版本。
Maven现在主要有Maven 1.x和Maven 2.x,其中现在最新版本是Maven 2.02。
Maven 2完成了对Maven 1的重写。重写的首要目的是要提供了强大的Jave构建和包含API的项目,允许Maven被植入任何地方,尤其是高级别的产品如IDEs、质量工具、报告工具等这些。Maven 2构建生命周期的概念正式化,其比Maven更易扩展。
因此现在我们主要研究的就是Maven 2。
Maven的安装
-
Windows 2000/xp下的安装
-
解压缩maven-2.0.2-bin.zip到你希望安装Maven 2.0.2的所在目录。这里假设你选择了C:\ProgramFiles\Apache Software Foundation\maven-2.0.2.
-
将C:\Program Files\Apache Software Foundation\maven-2.0.2\bin目录加入到你的%path%环境变量中。
-
同时,确认JAVA_HOME是否正确设置成功。
-
运行 mvn --version 确认是否安装成功。
显示Maven version: 2.0.2 则表示安装成功。
-
基于Unxi-based的操作系统(Linux,Solaris and Mac OS X)
-
解压缩发布包到你希望安装Maven 2.0.2的所在目录。这里假设你选择了/usr/local/maven-
-
将/usr/local/maven-2.0.2/bin目录加入到你的path环境变量中,例如:PATH=/usr/local/maven-2.0.2y/bin: $PATH。
-
同时,确认JAVA_HOME是否正确设置成功。
-
运行 mvn --version 确认是否安装成功。
显示Maven version: 2.0.2 则表示安装成功。
Maven主要功能列表
Maven是一种对项目的管理工具,它提供了一种方式来管理以下项目中涉及到的工作内容,同时以下也是Maven的主要功能:
-
构建项目(Builds)
-
文档编制(Documentation)
-
报告(Reporting)
-
依赖管理(Dependencies)
-
配置管理(SCMs)
-
发布管理(Releases)
构建项目
-
首先创建一个Maven工程
Maven可用于构建java应用工程和java web应用工程。
-
-
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>
|
-
-
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>
|
-
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.xml或build.xml),另外还包括提供给最终用户的文件,如,README.txt, LICENSE.txt等等。
顶级目录还包括两个子目录:src,target。顶级目录下可能出现的其他目录仅仅是CVS或.svn和其他多模块工程的工程目录,最好不要再有其他目录。
Target目录是所有工程编译构建的输出目录。
Src目录包含所有工程的源码文件,配置文件,资源文件等等。它下面的子目录一般包含main(主要的工程源文件),test(测试文件),site(项目站点文件)。
-
项目构建的生命周期的介绍
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简介 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简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装...
Maven教程
NULL 博文链接:https://java6ean.iteye.com/blog/1958897
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 ...
- [一、Maven简介和快速入门](#一Maven简介和快速入门) - [1.1 Maven介绍](#11-Maven介绍) - [1.2 Maven主要作用理解](#12-Maven主要作用理解) - [1.3 Maven安装和配置](#13-Maven安装和配置) - [二、基于IDEA的...
1.Maven简介 2.下载与安装 3.Maven基础概念(重点) 4.第一个Maven项目(手工制作) (重点) 5.第一个Maven项目(IDEA生成)(重点) 6.依赖管理(重点) 7.生命周期与插件 8.分模块开发与设计(重点) 9.聚合...
第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 ...
第 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 是一款基于 Java 平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,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 不重复发明...
NULL 博文链接:https://qingchenghuanying.iteye.com/blog/1405781
Maven简介 Maven准备 Maven目录分析 Maven本地仓库 IDEA启用Maven功能 IDEA创建Maven工程 IDEA执行Maven命令 Maven配置POM 配置Maven远程仓库(私服)
Maven简介、Maven主要做什么用? 项目对象模型(POM) 坐标(Coordinates)、打包方式(Packaging)、项目描述 项目子父级关系(parent) 依赖管理(dependency),冲突了怎么办 组合及其继承(modules)、生命周期及阶段、常用...
Maven简介,maven与ant比较,windows下安装配置,坐标依赖,仓库,部署第三方构建
Maven使用讲解.ppt Maven简介及安装 Maven基本使用 Maven基本概念 POM介绍 Maven多模块项目 Maven插件应用 Maven仓库
本压缩包中主要包含maven的学习教程,其中:maven简介,maven安装、入门程序、项目管理、依赖管理、工程调试、maven整合SSH、maven私服等
Maven使用简介
Maven简介 Maven仓库 Maven的安装和配置 Maven的使用 何为Maven
Maven 学习 Maven简介 Maven安装 用maven创建第一个java工程 生成eclipse工程文件 下载maven的eclipse插件 导入工程