Maven 特点:
- Maven的编译以及所有的脚本都基于POM(project object model)。
- Maven对所依赖的包有明确的定义,如使用那个包,版本是多少,一目了然。
- Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。
- Maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode reference,等。
目前Maven的版本为Maven 2.0。
简单的管理功能:
生成项目 mvn archetype:create -DgroupId=com.myproject -DartifactId=my-app
my-app
----src
----main
----java
----com
----myproject
----test
----java
----com
----myproject
Maven在my-app目录下创建了一个pom.xml文件。这是项目的最基本部分。pom.xml文件包含了一组指令,这些指令告诉Maven如何构建项目和包含哪些其它的特殊指令(POM是“项目对象模型”的缩写)。在默认的情况下,Maven包含了JUnit的依赖以此来鼓励单元测试。
- <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.myproject</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的所有全新技巧。注意以下命令必须在pom.xml文件所在的目录中运行。
Maven命令:
- --mvn test:运行应用程序中的单元测试
- --mvn package:依据项目生成jar文件
- --mvn install:将项目的jar文件添加到库中,以备依赖此项目时使用。
- --mvn site:生成项目相关信息的网站
- --mvn clean:清除目标目录中的生成结果
- --mvn eclipse:eclipse:生成Eclipse项目文件
-Dmaven.test.skip=true 忽略test
mvn dependency:sources 利用maven下载源代码
mvn eclipse:clean 清除eclipse结构
mvn dependency:tree 查看maven的依赖树结构
mvn dependency:tree -->tree.txt 输出到文件,-->是windows中输出内容文件的字符,类似于linux中的 > 符号
Prevent Project References(排除生成项目依赖关系)
mvn eclipse:eclipse -Declipse.useProjectReferences=false
http://maven.apache.org/plugins/maven-eclipse-plugin/examples/prevent-module-references.html
scope参数值的说明:
--compile:默认值。表明是所有任务所需的资源
--test:运行所有的测试用例时所需资源
--runtime:表明是运行时所需资源
--provided:JDK部分或应用服务器的classpath所需的资源
Java web项目管理
mvn archetype:create -DgroupId=com.oreilly -DartifactId=Oreilly -DarchetypeArtifactId=maven-archetype-webapp
生成的结果结构如下所示:
Oreilly
----src
----main
----resources
----webapp
----WEB-INF
pom.xml文件中将包含一行来表明项目应该被打包成war文件: <packaging></packaging> war。现在就可以使用mvn package命令来生成war文件。
创建工程项目generate方法:
依赖管理
创建好项目结构,添加完一些代码,测试并编译好应用程序后,接下来可以看看Maven是如何处理依赖关系的。为了给项目添加一个依赖项,必须将此依赖项添加到pom.xml文件中。下次运行Maven的时候,它将从Ibiblio存储库中得到这个依赖项,并且将此依赖项添加到项目构建路径中。
例,将功能强大的Quartz库添加到项目中。Quartz是一款用纯Java编写的关于时间安排的开源项目,它是您时间安排需求方面的很好的选择。
- <dependency>
- <groupId>quartz</groupId>
- <artifactId>quartz</artifactId>
- <version>1.5.1</version>
- <scope>compile</scope>
- </dependency>
我们仅仅只需添加<dependencies></dependencies>这个元素,Maven就能下载Quartz并将其作为项目中的一个依赖项。不用担心Quartz的依赖项,一个Maven的存储库将包含依赖项自身依赖的资源信息,当Maven下载Quartz的时候,它自身的依赖资源也同样会被下载。
手动配置jar包
例,安装Java Activation框架的jar包。首先从Sun的站点上下载此jar包,接着使用Maven将它导入本地的存储库中。
mvn install:install-file -Dfile=activation.jar
-DgroupId=javax.activation -DartifactId=activation
-Dversion=1.0 -Dpackaging=jar
现在,新的jar包就像其它的项目依赖项一样安装到了本地存储库中。在只需添加依赖声明后,就已准备就绪了。在添加jar包和声明它们为依赖项时,必须确保版本信息的正确性。版本的不匹配会导致Maven在寻找资源时的失败。在导入Sun的jar包时,如果您需要寻求标准命名参数的帮助,可以参考Sun标准jar包命名。
- <dependency>
- <groupId>javax.activation</groupId>
- <artifactId>activation</artifactId>
- <version>1.0</version>
- <scope>compile</scope>
- </dependency>
Maven 和 Eclipse
可以首先使用Maven来创建您的项目,然后再用命令mvn eclipse:eclipse来生成Eclipse项目文件,这样最初就能得到一个好的目录结构,但Maven也可通过其Eclipse插件来管理任何项目。
Maven2.0有着许多实用的特点,并且完成任务十分出色。Maven中最值得称赞的地方就是使用了标准的目录结构和部署。Maven可以通过纯脚本来实现。在文档方面,由于使用了项目站点构建工具,所以当项目构建完成后,您可以查看所有开发的当前状态。
Maven聚合与继承
1. Maven聚合:方便快速构建项目
<modules>
<module>org.dmwdp.web</module>
<module>org.dmwdp.jpa.hibernate</module>
</module>
2. Maven继承:消除重复配置
推荐做法:建立一个packing为pom的Maven工程,该工程进行properties和依赖包的公共配置。
3. 反应堆
(1) 反应堆(Reactor)是指所有模块组成的一个构建结构。对于单模块项目,反应堆就是本身,但对于多模块来说,反应堆就包含了个模块之间继承与依赖的关系,从而能自动计算出合理的模块构建顺序。
(2) 裁剪反应堆
当用户需要选择性的构建整个项目或者选择构建单个模块时,即仅仅构反应堆中的某些模块,可以裁剪反应堆:
-am: 同时构建所列模块的依赖模块;
-amd: 同时构建依赖与所列模块的模块;
-pl: 构建指定的模块,模块间用逗号分隔;
-rf: 从执行的模块回复反应堆。
Linux/Mac maven 乱码
设置环境变量 MAVEN_OPTS='-Xmx1024m -Dfile.encoding=UTF-8'
相关推荐
**Maven使用简介** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。Maven通过一个统一的项目对象模型(Project Object Model,POM),使得开发者可以轻松地定义...
在本文中,我们将深入探讨Maven 2的核心概念、功能以及如何使用它来提高开发效率。 **一、Maven的概念** 1. **项目对象模型(Project Object Model, POM)** Maven 的核心是POM,它是项目配置的中心。POM是一个...
**Maven简介** Maven是Apache软件基金会开发的一个项目管理工具,它基于项目对象模型(Project Object Model,POM),通过使用预定义的构建生命周期和依赖管理系统,可以自动化构建过程。Maven的出现,替代了传统的...
此外,Maven的插件系统允许扩展其功能,满足特定的构建需求。 【标签】:“源码”、“工具” “源码”标签表明Maven在处理Java源代码的构建过程中起着关键作用。它能自动编译源代码,并生成相应的类文件,同时处理...
创建Java工程是Maven的基本功能之一。使用mvn archetype:generate命令可以启动一个基于不同模板的项目工程的创建。常见的工程类型包括普通的Java应用、Android应用、OSGi bundle、Clojure项目、Web应用打包(WAR)等...
功能简介 由于是OA系统.大多数功能都依赖于权限管理. 出勤状况表 登录和注销时自动记录出勤状况.并把当月的出勤状况显示至首页 公告 任务 实现了任务进度,添加评论,上传图片功能 邮件 实现了一对一的邮件. 有上传...
### Maven Wrapper 简介及应用 #### 一、引言 在Java开发领域,构建工具扮演着举足轻重的角色。Maven作为最流行的构建工具之一,因其强大的依赖管理和项目构建能力而受到广泛欢迎。然而,对于某些场景,如在特定...
一、Maven Plugin简介 Maven Plugin是Maven中的插件,它提供了多种预定义的目标(goals),这些目标可以完成特定的构建任务。每个Maven Plugin通常包含多个目标,例如,`maven-compiler-plugin`用于Java源代码的编译...
#### Maven简介 Maven是一款强大的自动化构建工具,主要用于Java项目的构建、依赖管理和项目信息管理。它通过一系列标准的过程来管理项目的生命周期,从而简化了项目的构建过程。本文将详细介绍Maven的安装配置、...
此外,Maven通过插件扩展其功能,比如maven-compiler-plugin用于编译,maven-surefire-plugin用于运行测试。 **总结** Maven 3.9作为Maven的新版本,提供了更高效、更稳定的服务。了解并正确配置Maven对于任何Java...
#### 一、Maven2简介 Maven2是一个非常流行的Java项目管理和构建工具。它提供了强大的项目管理功能,能够帮助开发者自动化构建过程,包括编译、测试、打包、部署等多个阶段。Maven的核心概念是项目对象模型(Project...
#### 一、Maven简介 1. **Maven是什么?** - **定义**: Maven是一款由Apache组织提供的项目管理和整合工具。 - **功能**: 主要用于构建和管理Java项目,通过一系列标准化的过程和最佳实践来简化项目的构建流程。 ...
** Maven简介 ** Maven是Java开发中的一个项目管理和综合工具,由Apache软件基金会开发。它可以帮助开发者构建、管理和部署Java项目,通过自动化构建过程,简化项目配置,并且提供了依赖管理和标准化的项目生命周期...
#### Maven简介 Maven是Apache软件基金会组织下的一个开源项目,它是一种基于项目对象模型(Project Object Model,POM)的构建工具,主要用于Java项目的构建、依赖管理和项目信息管理。通过一系列标准化的生命周期...
Maven简介** Maven是由Apache软件基金会开发的一个项目管理工具,它基于项目对象模型(Project Object Model,POM)的理念,通过XML文件来描述项目信息、构建配置和依赖关系。Maven可以自动下载项目所需的依赖库,...
**一、 Maven简介** 1. **作用**:Maven统一了构建过程,通过插件系统执行编译、测试、打包、部署等任务。它还自动解决项目依赖关系,避免手动管理jar文件的繁琐工作。 2. **基于约定优于配置**:Maven有一套默认...
### Maven环境搭建与配置详解 #### 一、Maven简介 Maven是Apache下的一个开源项目,它是一种项目管理和...通过以上步骤,我们可以成功地搭建起一个完整的Maven环境,并利用Maven的强大功能提高项目的构建效率和质量。
1. **Maven简介** Maven是Apache软件基金会开发的开源项目,它的核心目标是简化Java项目的构建过程。通过使用约定优于配置的原则,Maven可以自动处理大部分构建任务,如编译、测试、打包、部署等,极大地提高了开发...