`

maven学习笔记

阅读更多
在mvn archetype:create这样的语法中,这里archetype是一个插件标识而create是目标标识。

Maven的核心对你项目构建中特定的任务几乎毫无所知。就它本身来说,Maven不知道如何编译你的代码,它甚至不知道如何制作一个JAR文件,它把所有这些任务代理给了Maven插件,像Compiler插件和Jar插件,它们在需要的时候被下载下来并且定时的从Maven中央仓库更新。当你下载Maven的时候,你得到的是一个包含了基本躯壳的Maven核心,它知道如何解析命令行,管理classpath,解析POM文件,在需要的时候下载Maven插件。

在Maven中, 阶段称为“构建生命周期”中的一个步骤。生命周期是包含在一个项目构建中的一系列有序的阶段。Maven可以支持许多不同的生命周期,但是最常用的生命周期是默认的Maven生命周期,这个生命周期中一开始的一个阶段是验证项目的基本完整性,最后的一个阶段是把一个项目发布成产品

Maven执行一个阶段的时候,它首先会有序的执行前面的所有阶段,到命令行指定的那个阶段为止。每个阶段对应了零个或者多个目标。

项目对象模型(POM),一个项目的声明性描述。当Maven运行一个目标的时候,每个目标都会访问定义在项目POM里的信息。

目标在POM的上下文中运行。目标是我们希望针对项目运行的动作,而项目是通过POM定义的。

groupId 团体标识, 一般表现为组织名称的逆向域名

artifactId 在groupId下的表示一个单独项目的唯一标识符。

Maven仓库是通过结构来定义的,一个Maven仓库是项目构件的一个集合,这些构件存储在一个目录结构下面,它们的格式能很容易的被Maven所理解。在一个Maven仓库中,所有的东西存储在一个与Maven项目坐标十分匹配的目录结构中。

Maven从远程仓库下载构件和插件到你本机上,存储在你的本地Maven仓库里。一旦Maven已经从远程仓库下载了一个构件,它将永远不需要再下载一次,因为maven会首先在本地仓库查找插件,然后才是其它地方。在Windows XP上,你的本地仓库很可能在C:\Documents and Settings\USERNAME\.m2\repository

当用Maven来创建WAR或者EAR,你可以配置Maven让它在生成的构件中捆绑依赖,你也可以配置Maven,使用provided范围,让它排除WAR文件中特定的依赖。provided范围告诉Maven一个依赖在编译的时候需要,但是它不应该被捆绑在构建的输出中。这个范围告诉 Maven jar 文件已经由容器“提供”了,因此不再需要包含在 war 中。

测试范围依赖是一个只在测试编译和测试运行时在 classpath 中有效的依赖。如果你的项目是以 war 或者 ear 形式打包的,测试范围依赖就不会被包含在项目的打包输出中。

Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件。 你可以使用 Maven Assembly 插件以你希望的任何形式来装配输出,只需定义一个自定义的装配描述符。  要配置 Maven Assembly 插件, 我们需要在 pom.xml 中的 build 配置中添加如下的 plugin 配置。



配置Maven
做项目的第一件事情,当然是给项目起名字和建立目录。这可由Maven来完成。首先安装Maven至D:\Maven,设定MAVEN_HOME为D:\Maven并设定PATH。
Maven默认的remote repository是ibiblio.org,这个地方有些人上不去,因此要更改一下。Maven找寻配置参数的默认的顺序是从maven.jar中的defaults.properties开始。打开该文件,修改:
    maven.repo.remote =     http://apache.linuxforum.net/dist/java-repository, http://dist.codehaus.org, http://mirrors.sunsite.dk/maven/,  http://public.planetmirror.com/pub/maven, http://www.ibiblio.org/maven
Maven默认的本地文件保存在Document and Setting的user.home里面,非常不便。在%MAVEN_HOME%下建立一个local目录,将本地的repostiory保存在此,以免重装系统丢失。
    maven.home.local = ${maven.home}/local
Maven的提示语言在中文环境中可能出现乱码,进入maven.jar,发现org\apache\maven\messages目录下的messages_zh_CN.properties里面直接写了中文字符。删掉它!就不会乱码了。(或者用native2ascii转换)

好了,可以开工了。执行maven genapp,采用web模版。id设定为sample。输入maven eclipse,为该项目增加eclipse支持。
进入eclipse,导入workspace下面的Sample Project。由于缺少MAVEN_REPO变量,Eclipse提示编译失败。
在Eclipse的Preferences – Java - Build Path - Classpath Variables中添加名为MAVEN_REPO的变量,指向D:\maven\local\repository。
如果想让eclipse支持直接运行maven的goal,可以安装mavenide插件。



本节相关网站:
http://maven.apache.org MAVEN官方网站
http://maven.huangdong.com 黄冬的MAVEN中文站
http://mevenide.codehaus.org MavenIDE Eclipse插件
http://www.binamics.com/mavenworkshop MavenWorkshop Eclipse插件

Maven2 的基本原理很简单,采用远程仓库和本地仓库以及 pom(project object model).xml ,将 pom.xml 中定义的 jar 文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的 jar ,同一个版本的 jar 只需下载一次,而且避免每个应用都去拷贝 jar 。
分享到:
评论

相关推荐

    maven学习笔记maven学习笔记

    maven学习笔记maven学习笔记maven学习笔记

    Maven学习笔记.zip

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

    maven学习笔记01(基础入门)

    ** Maven基础入门 ** Maven是一个Java项目管理工具,它主要负责构建、依赖管理和项目信息管理。...在`maven_study_01`的学习笔记中,你可以找到更多关于Maven的基础知识和实践案例,帮助你快速上手并掌握这一工具。

    maven学习笔记整理

    maven学习笔记整理

    培训机构传出的maven学习笔记

    在“培训机构传出的maven学习笔记”中,我们可能涵盖以下几个关键知识点: 1. **Maven的基本概念**:理解Maven的核心概念,如POM.xml文件、仓库(本地仓库和中央仓库)、生命周期和构建阶段(如clean、compile、...

    maven学习笔记1

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

    maven学习笔记.rar

    ** Maven学习笔记详解 ** Maven,作为Java项目管理和构建工具,是开发人员不可或缺的利器。它通过使用一种标准化的项目对象模型(Project Object Model,POM)来管理项目的依赖关系,构建过程以及配置信息。Maven...

    mybatis_maven学习笔记

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

    个人Maven学习笔记

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

    Maven学习笔记

    **Maven学习笔记** Maven是一个强大的Java项目管理和构建工具,它简化了项目的构建、依赖管理和文档生成。本文档基于尚硅谷的视频教程,旨在帮助读者深入理解Maven的核心概念和使用方法。 **1. 为什么学习Maven** ...

    Maven 学习笔记.docx

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

    Maven学习笔记大全.docx

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

    201205_Maven学习笔记1.rar

    【标题】:“201205_Maven学习笔记1.rar”揭示了关于Maven的深入学习内容,这个压缩包包含了一系列文档,旨在帮助开发者更好地理解和应用Maven这一强大的Java项目管理和构建工具。 【描述】:尽管描述部分是空的,...

    maven学习笔记,快速入门maven

    内容概要:maven学习笔记,适合刚接触maven的人能让你快速入门。 适用人群:大学生或者初基础maven的人 使用场景及目标:idea集成maven,用来下载依赖包

    201205_Maven学习笔记3.rar

    【标题】"201205_Maven学习笔记3.rar"所涵盖的知识点主要集中在Maven的使用和集成上,这是一个关于Maven的详细学习资料压缩包,包含多个文档,帮助用户理解并掌握Maven在实际开发中的应用。Maven是一个强大的Java...

    Maven学习笔记 PDF记录一下

    Maven学习笔记,使用中遇到的问题,集成eclipse的各种坑,以便记录,为了以后复习使用。

Global site tag (gtag.js) - Google Analytics