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(项目站点文件)。
-
项目构建的生
分享到:
相关推荐
### Maven2 学习手册概览 Maven2作为开源项目的构建工具,相较于其前身Maven1,在功能和性能上进行了显著的优化和扩展。它不仅提升了构建速度,还简化了配置过程,引入了生命周期的概念,并增强了依赖管理,使之...
**Maven2 指南** Maven2 是一个强大的构建工具,专为Java项目设计,旨在简化构建过程,统一项目配置。...对于初次接触Maven2的开发者,可能会遇到一定的学习曲线,但一旦掌握,将极大地提升工作效率。
**Maven学习手册** 在软件开发领域,Maven是一个强大的构建工具,主要用于Java项目管理。它简化了构建过程,依赖管理和项目的标准化。本手册旨在帮助开发者深入理解和有效地使用Maven,结合作者的实际项目经验,...
** Maven2 中文使用手册 ** Maven 是一个强大的项目管理工具,主要应用于Java开发领域。它通过自动化构建过程,简化项目的构建、依赖管理和文档生成。Maven2 是 Maven 的第二个主要版本,虽然现在已经更新到了 ...
**Maven 2 用户手册** Maven是一款强大的Java项目管理工具,它可以帮助开发者构建、管理和部署Java项目。在深入理解Maven之前,我们先要明白它的核心概念:项目对象模型(Project Object Model,POM)。POM是Maven...
《Maven权威指南》不仅是一本学习Maven的入门书籍,更是深入理解和掌握Maven高级特性的宝贵资源。通过本书的学习,开发者能够掌握Maven的核心理念和最佳实践,从而提升项目构建的效率和质量,使项目管理更加规范化和...
里面包含:两本maven电子书(《Maven权威指南中文版》和《Maven实战》)和两个文档(《在maven和jetty环境下eclipse的调试》、《基于Maven的Spring_+_Spring_MVC_+_Mybatis的环境搭建》),内容皆精品。
【Maven学习指南】 Maven是一个强大的项目管理工具,源于Apache组织,专为基于Java平台的项目构建、依赖管理和项目信息管理而设计。它通过一个明确的项目对象模型(POM)来描述项目,利用其内置的项目生命周期和...
《Maven用户开发手册》是为开发者提供关于Maven这一构建工具详细指南的文档,旨在帮助用户更好地理解和使用Maven进行软件项目管理。本手册涵盖了从Maven的基本概念到实际操作,再到在Eclipse集成开发环境中的应用等...
《Maven基础使用手册》是针对初学者的一份详尽指南,旨在帮助用户从零开始掌握Maven的基本操作。这份手册以实例与图解相结合的方式,使得学习过程更为直观易懂。 一、获取Maven支持 1. 访问官方网站:在学习Maven...
总结来说,“maven完全手册”涵盖了Maven的安装、基本概念、项目结构、POM配置、生命周期、依赖管理、插件使用、仓库管理以及多模块项目等内容,是学习和掌握Maven的宝贵资料。通过深入理解和实践,开发者能够更好地...
在本文中,我们将深入探讨如何使用Maven搭建项目,以及Maven...继续学习Maven的更多插件和高级特性,将使你在项目构建和管理方面更加得心应手。在实践中不断探索和熟练使用Maven,可以显著提高开发效率和团队协作能力。
包含:Maven2_基础教程.pdf\《Maven权威指南》-电子书下载(PDF)(中文)\maven2完全使用手册.docx\Maven3实战笔记04Maven的生命周期和插件.doc\Maven实战.pdf\Maven学习指南.pdf
Maven2教程,项目构建使用,一起学习
Maven学习指南.pdf Maven实战.doc Maven实战.pdf Maven构建并管理Flex项目入门.pdf Maven简单实用教程.docx OTNVD_WebLogicServerDevelopment_CN.pdf 《Maven实战》(国内首本Maven著作)(Maven的安装、配置及使用入门...
### Maven 安装与使用详解...通过以上步骤,我们不仅学习了 Maven 的安装和基本配置,还了解了如何使用 Maven 来管理项目依赖、自动化构建以及处理多模块项目之间的依赖关系。这对于 Java 开发者来说是非常实用的技能。
### Maven 实验手册知识点解析 #### 一、Maven 基本概念与操作 **1. Maven 项目创建** - **项目结构**: 按照 Maven 的...通过实际操作,读者可以深入理解 Maven 如何管理和构建项目,为后续的学习打下坚实的基础。
《maven2完全使用手册》全面地探讨了Maven2的各种特性和用法,包括高级配置、多模块项目管理、依赖范围、继承与聚合,以及解决依赖冲突的方法。这本手册对于那些希望深入理解Maven的开发者来说非常实用。 《Maven3...
2. **依赖管理**:Maven的中央仓库包含了大量的开源库,开发者只需要在pom.xml中声明依赖,Maven就会自动下载并管理这些依赖,避免了版本冲突问题。 3. **插件系统**:Maven拥有丰富的插件体系,可以通过插件执行...