我们现在开发Java应用,很多时候都会使用开源框架,例如Spring,Hibernate,log4j等等,这样我们的项目就需要把这些开源的jar导入我们的项目中。以往,我有2种做法引入这些包:
1. 把jar直接放入项目中,JavaSE项目自己建立一个libs目录,用来放置jar包,Web项目放入WEB-INF/lib下面
2. 在自己的电脑新建一个文件夹,专门用来存放各类jar包,项目需要使用的时候通过创建user library引入项目中
这两种方法各有优点,也各有非常严重的缺陷:
第一种方法
优点:
我需要的包都在我的项目中,这个项目可以传给别人,也可以从一台pc传到另一台pc,几乎不需要其他工作,就能在新环境中跑起来。
缺点:
这样一来,项目就变得庞大了,很可能我只是写个ssh sample给别人看,写的代码就几十k,而引入所有jar后,就变成几十m了,有时需要把这样的项目放上cvs/svn上,传输也太庞大了。更何况,很多时候,项目中需要的jar,新环境中早已存在。
第二种方法
优点:
解决了第一种方法中项目太庞大的缺点,只要和团队成员约定library的命名规则,则可以在多个环境中传输。
缺点:
这种做法的缺点也是非常恐怖的,有时候,新环境中,根本没有相关jar包,程序就不能运行了;另外,这种做法是和自己相熟的团队中约定规则可行,万一另外有开发人员,他们有他们的命名规则,则乱了。
Maven的依赖管理功能,则能够很好地解决这样的问题。
在Eclipse中(已安装Maven插件),我们可以通过创建Maven project或者对创建的project右键点击->Maven->Enable Dependency Management,来使用Maven。这个时候,在project根目录下会有一个xml文件——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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.noside</groupId>
<artifactId>maventest</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
元素说明:
modelVersion:pom文件的版本号,一旦有模块更改就会更新
groupId:项目组织的唯一标识
artifactId:项目唯一标识
version:项目版本号
除此之外还有其他元素,详细情况可参考http://maven.apache.org/ref/3.0.3/maven-model/maven.html
接下来,我会为项目增加spring的library。打开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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.noside</groupId>
<artifactId>maventest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>2.5.6</version>
</dependency>
</dependencies>
</project>
这样项目根目录会出现"Maven Dependencies"的目录,这样需要的包就被导入了。
特别注意的是,Maven通过groupId/artifactId/version来唯一标识依赖包,这里,我们不需要知道需要的包的路径在什么地方,Maven会根据我们的配置,在远程服务器寻找对应的包,放到本地,下次再用到这个包,就不需要再从远程下载了。
以上就是Maven作为依赖管理的一个简单应用。
分享到:
相关推荐
**Maven学习笔记大全** Maven是一个强大的Java项目管理工具,它通过项目对象模型(Project Object Model,简称POM)来管理和构建项目。POM是一个XML文件,包含了项目的配置信息,如依赖、构建过程和插件设置。Maven...
**Maven学习笔记** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。Maven通过使用一个项目对象模型(Project Object Model,POM),XML格式的配置文件,定义了...
Maven是一种流行的自动化构建工具,主要用于Java项目的构建、依赖管理和项目信息管理。以下将围绕标题、描述以及部分内容中提及的关键知识点进行详细阐述。 ### Maven 2 学习笔记 #### 一、Maven 项目的基本结构及...
【Maven学习笔记】 Maven是一个强大的项目管理和构建工具,主要应用于Java开发领域。它能够自动管理项目的依赖关系,帮助开发者解决因jar包版本冲突、依赖管理混乱等问题带来的困扰。Maven通过制定一套规范化的项目...
提供的配套视频( BV1kf4y147Q4 )可能涵盖了Maven的基础概念、POM的配置、依赖管理的实践、生命周期的执行流程,以及常见插件的使用方法。观看这个视频将有助于加深对Maven的理解,特别是对于初学者,通过视频形式...
Maven3作为该工具的升级版本,引入了更多特性和改进,比如更好的多模块项目构建支持、更强大的依赖管理功能以及改进的仓库管理等。 描述部分简单重复了标题内容,没有提供额外信息。 标签“maven pdf 实战”表明该...
Maven是Apache软件基金会开发的一款项目管理工具,它主要针对Java项目进行构建、依赖管理和文档生成。Maven的出现极大地简化了Java项目的构建过程,它使用了一种标准化的方式来管理项目结构和依赖关系。 首先,...
【Maven学习笔记1】 Maven是一个强大的Java项目管理和构建工具,它可以帮助开发者管理项目的依赖、构建过程、项目信息和报告。本笔记主要涵盖了Maven的基础知识,包括资料收集、安装指南,特别是针对Linux环境下的...
### Maven学习笔记 #### Maven简介与优势 Maven是一个项目管理和综合工具,主要用来帮助Java项目构建、依赖管理和项目信息管理。与Ant等其他构建工具相比,Maven提供了一种更为标准化的方式,来处理项目的构建过程...
**Maven项目学习笔记记录** 在软件开发领域,Maven是一个强大的项目管理和构建工具,尤其在Java开发中广泛使用。本笔记将深入探讨Maven的核心概念、主要功能以及实际应用场景,帮助你更好地理解和掌握这一重要工具...
### 个人Maven学习笔记 #### 为什么使用Maven? 在软件开发过程中,尤其是在使用Java进行后端开发时,项目通常会依赖大量的第三方库或框架。如果没有统一的管理工具,这些依赖很容易出现版本冲突的问题,增加了...
【mybatis_maven学习笔记】 在Java开发领域,MyBatis和Maven是两个不可或缺的工具,它们分别在数据访问层和项目构建方面扮演着重要角色。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,...
总结来说,Maven是一个强大的项目管理工具,它通过标准的构建过程、依赖管理和仓库系统,极大提升了Java开发的效率和质量。学习和掌握Maven,对于Java开发者来说,不仅能规范个人的开发习惯,也能更好地适应团队协作...
Maven简化了构建过程,通过依赖管理和生命周期管理,使得构建、测试和部署Java应用程序变得更加容易。 ** Maven下载与安装 ** 在开始使用Maven之前,你需要从Apache官方网站上下载最新版本的Maven。下载完成后,解...
Maven 作为Java开发的重要工具,简化了项目构建和依赖管理,通过POM文件实现自动化构建流程。了解并熟练使用Maven,可以极大地提高开发效率,确保项目构建的一致性和可维护性。通过学习Maven笔记,开发者可以更好地...
**Maven学习笔记** Maven是一个强大的项目管理工具,它主要应用于Java开发环境中,用于构建、管理和部署项目。Maven通过使用一个标准的目录结构和一个XML格式的项目对象模型(Project Object Model,POM)文件,...
总的来说,这篇“Maven3 学习笔记”可能会详细讲解 Maven3 的基本概念,如生命周期、构建阶段、依赖管理和插件系统。还会涉及如何配置 Maven,特别是 `settings.xml` 文件的个性化设置,以及通过一个实际项目(如 ...