`
noside
  • 浏览: 5702 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Maven学习笔记(二.作为依赖管理系统)

    博客分类:
  • Java
阅读更多

我们现在开发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学习笔记大全.docx

    **Maven学习笔记大全** Maven是一个强大的Java项目管理工具,它通过项目对象模型(Project Object Model,简称POM)来管理和构建项目。POM是一个XML文件,包含了项目的配置信息,如依赖、构建过程和插件设置。Maven...

    Maven学习笔记.zip

    **Maven学习笔记** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。Maven通过使用一个项目对象模型(Project Object Model,POM),XML格式的配置文件,定义了...

    Maven 2 学习笔记.txt

    Maven是一种流行的自动化构建工具,主要用于Java项目的构建、依赖管理和项目信息管理。以下将围绕标题、描述以及部分内容中提及的关键知识点进行详细阐述。 ### Maven 2 学习笔记 #### 一、Maven 项目的基本结构及...

    Maven 学习笔记.docx

    【Maven学习笔记】 Maven是一个强大的项目管理和构建工具,主要应用于Java开发领域。它能够自动管理项目的依赖关系,帮助开发者解决因jar包版本冲突、依赖管理混乱等问题带来的困扰。Maven通过制定一套规范化的项目...

    Maven笔记与资料.zip

    提供的配套视频( BV1kf4y147Q4 )可能涵盖了Maven的基础概念、POM的配置、依赖管理的实践、生命周期的执行流程,以及常见插件的使用方法。观看这个视频将有助于加深对Maven的理解,特别是对于初学者,通过视频形式...

    Maven3实战笔记.pdf

    Maven3作为该工具的升级版本,引入了更多特性和改进,比如更好的多模块项目构建支持、更强大的依赖管理功能以及改进的仓库管理等。 描述部分简单重复了标题内容,没有提供额外信息。 标签“maven pdf 实战”表明该...

    Maven学习笔记.docx

    Maven是Apache软件基金会开发的一款项目管理工具,它主要针对Java项目进行构建、依赖管理和文档生成。Maven的出现极大地简化了Java项目的构建过程,它使用了一种标准化的方式来管理项目结构和依赖关系。 首先,...

    maven学习笔记1

    【Maven学习笔记1】 Maven是一个强大的Java项目管理和构建工具,它可以帮助开发者管理项目的依赖、构建过程、项目信息和报告。本笔记主要涵盖了Maven的基础知识,包括资料收集、安装指南,特别是针对Linux环境下的...

    Maven学习笔记

    ### Maven学习笔记 #### Maven简介与优势 Maven是一个项目管理和综合工具,主要用来帮助Java项目构建、依赖管理和项目信息管理。与Ant等其他构建工具相比,Maven提供了一种更为标准化的方式,来处理项目的构建过程...

    maven项目学习笔记记录

    **Maven项目学习笔记记录** 在软件开发领域,Maven是一个强大的项目管理和构建工具,尤其在Java开发中广泛使用。本笔记将深入探讨Maven的核心概念、主要功能以及实际应用场景,帮助你更好地理解和掌握这一重要工具...

    个人Maven学习笔记

    ### 个人Maven学习笔记 #### 为什么使用Maven? 在软件开发过程中,尤其是在使用Java进行后端开发时,项目通常会依赖大量的第三方库或框架。如果没有统一的管理工具,这些依赖很容易出现版本冲突的问题,增加了...

    mybatis_maven学习笔记

    【mybatis_maven学习笔记】 在Java开发领域,MyBatis和Maven是两个不可或缺的工具,它们分别在数据访问层和项目构建方面扮演着重要角色。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,...

    Maven笔记.docx

    总结来说,Maven是一个强大的项目管理工具,它通过标准的构建过程、依赖管理和仓库系统,极大提升了Java开发的效率和质量。学习和掌握Maven,对于Java开发者来说,不仅能规范个人的开发习惯,也能更好地适应团队协作...

    Maven笔记.rar

    Maven简化了构建过程,通过依赖管理和生命周期管理,使得构建、测试和部署Java应用程序变得更加容易。 ** Maven下载与安装 ** 在开始使用Maven之前,你需要从Apache官方网站上下载最新版本的Maven。下载完成后,解...

    maven笔记.zip

    Maven 作为Java开发的重要工具,简化了项目构建和依赖管理,通过POM文件实现自动化构建流程。了解并熟练使用Maven,可以极大地提高开发效率,确保项目构建的一致性和可维护性。通过学习Maven笔记,开发者可以更好地...

    Maven学习-个人学习笔记

    **Maven学习笔记** Maven是一个强大的项目管理工具,它主要应用于Java开发环境中,用于构建、管理和部署项目。Maven通过使用一个标准的目录结构和一个XML格式的项目对象模型(Project Object Model,POM)文件,...

    Maven3 学习笔记

    总的来说,这篇“Maven3 学习笔记”可能会详细讲解 Maven3 的基本概念,如生命周期、构建阶段、依赖管理和插件系统。还会涉及如何配置 Maven,特别是 `settings.xml` 文件的个性化设置,以及通过一个实际项目(如 ...

Global site tag (gtag.js) - Google Analytics