1 什么是Maven
如果您会Ant,那maven算Ant加强版吧
如果不会,简单来说maven就是帮忙打打包,管理jar包的(当然)
2 Maven如何安装?m2eclipse呢?配置呢?
安装不用多说,请注意区分Maven和m2eclipse,后者只是前者的一个IDE插件,其余内容google吧
配置建议看官网,全面+权威,本文后有部分参考资料
3 用Maven管Jar好用么?
相信我,用点时间试试Maven吧,好用的.
Maven对jar包,最有意义的特点就是对jar的依赖有传递性
如上图,包很多吧,但是请对比下pom文件(在"什么是pom?"的示例中)看见没,只用第二层是自己手动配置的,结合m2eclipse或是再加上nexus私服之类的,这绝对用比自己复制好用吧
如果你还要控制下jar的版本呢?划分模块?等等的呢?
4 怎么确定我要的是那个jar包?
4.1 这里就要说下maven坐标轴
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>${spring.version}</version>
</dependency>
groupId 这个相当于包名
artifactId 这个相当于类名
version 版本号
以上几个足够唯一的jar了
还有在pom里的可选参数:
Packaging 这个就打包方式,一般有jar,war等
Classifier sources,javadoc要源码?还是文档?
5 什么是pom?
也就xml配置文档,说明下你的项目结构,依赖项目(denpdency,也就要那些jar包)
<?xml version="1.0" encoding="UTF-8"?>
<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>org.heypig</groupId>
<artifactId>mystruts2</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>myStruts2Demo</name>
<url>http://www.myComp.com</url>
<properties>
<spring.version>2.5.6.SEC01</spring.version>
<struts2.version>2.1.6</struts2.version>
</properties>
<dependencies>
<!--spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Struts 2 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-sitemesh-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
<!-- Servlet & Jsp -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- Jakarta Commons -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.1.1</version>
</dependency>
<!-- Dwr -->
<dependency>
<groupId>uk.ltd.getahead</groupId>
<artifactId>dwr</artifactId>
<version>1.1-beta-3</version>
</dependency>
<!-- hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.6.ga</version>
</dependency>
<dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.4.0.GA</version>
</dependency>
<!-- commons -->
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>commons-dbcp-all</artifactId>
<version>1.3</version>
</dependency>
<!-- Ds Driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
<build>
<finalName>mystruts2</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
6 管理版本也要一个一个的配吗?太麻烦了吧?
可以参看下pom的配置,设个变量就ok了
7 什么是Maven的仓库(repository)?
简单说,放jar的地方
当然,也没那么简单,仓库嘛,肯定有自己的编排目录,也还有些其他都东西
8 Maven插件(plugins)是什么?什么是目标(goals)?
Maven中的插件这个概念把我搞晕了很久才明白.
A.Maven插件,如果是说elcipse的插件,基本等同m2eclipse(很多菜鸟级人物如鄙人最初会Maven插件理解成这个);
B.Maven插件,是指针对maven本身的扩充.
比如,在<Maven 权威指南>中有:
引用
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03
"mvn" 可以看作及是Maven的运行环境
"archetype" 就是一个插件的名字
"create" 就是一个目标goal
"-D"开头就是参数键值对
对比win下的语句
引用
net start mysql
"archetype" 类似于net
"create" 类似于start
mvn也就是开个头,说明下我这是mvn环境,不是你的shell
就这么简单,我菜鸟理解了好久
9 我用m2eclipse的时候,代码提示老死,为什么?
我刚遇到这问题,如果你的本地仓库的部分jar出问题了,就会在eclipse(我的是3.5)的error log出看到
Invalid ZIP archive: E:\dev\maven\heypig-maven- repository\org\springframework\spring- beans\2.5.3\spring-beans-2.5.3.jar
把本地仓库的jar删了,然后m2eclipse的update dependencies就可以了.
10 Maven私服什么?要他干嘛
maven多数时候是再干这件事情:从远程仓库的jar下到本地仓库保管
如果你是团队工作,都要去远程下,WAN的网速总比不过LAN吧,你就需要一个私服了,大家就可以直接从你这里下了,而且如果是你自己的jar,别人那肯定不会有吧,传到自己的私服上去,大家下就ok
maven私服就是一个web服务器,主要功能如下
1.代理下载远程仓库的jar(当然,不至于傻到一开始就把整个maven center都下给你,安装配置nexus的时候大家都提醒要re-index就是这个道理,下载个索引目录给你,以后用到的时候再下载),
2.查找jar,pom,achetype(给maven插件 mvn achetype:create的时候用的"模型(模板)")等,nexus的还可以根据classname来找jar,可以代替掉findjar.com.
3.管理第三方jar,也就是远程仓库里没的,你自个做的
推荐是用nexus吧,都是soynatype公司(Maven背后的公司)的
11 不好意思,我nexus私服的密码忘记了,怎么办
如果你架私服的时候配了SMTP的话,请自行邮箱找回
如果没有,最简单的是security.xml删掉,重启即可
如果不想删,打开security.xml,找到users下的user,看id找到自己的用户名,对应的password改成f865b53623b121fd34ee5426c792e5c33af8c227,然后用密码"admin123"(不带引号哈)登录即可(我还不知道这个是什么加密算法,路过大侠赐教下)
12 就这些了?
开玩笑,Maven厉害的多,还有项目周期管理,划分模块等等
13 参考资料
juvenshun大牛(Maven权威指南译者)的JE博客
http://juvenshun.iteye.com/
m2eclipse 安装及使用 http://lin23871.iteye.com/blog/356939
分享到:
相关推荐
Maven权威指南中文版 Maven是一种基于项目对象模型(POM)的项目管理和构建工具,旨在提供一种通用的、跨语言的、跨平台的项目管理方式。 Maven的主要特点是约定优于配置(Convention Over Configuration),它提供...
《PDF文档 Maven权威指南_中文完整版清晰》是一部深入解析Apache Maven的综合性教程,旨在帮助Java开发者全面理解并熟练运用Maven这一强大的项目管理和构建工具。本指南覆盖了Maven的基础概念、核心功能以及高级应用...
数千第三方组件的项目来说,Maven已经证明了它是一个不可缺少的工具。它帮助数百万的工程师从日常工作中减轻维护第三方依赖的负担,它帮助很多组织从构建管理的泥 潭中挣脱出来,步入新的台阶,构建和维护软件所需要...
《Maven权威指南最全讲授》是一本专为Java开发者设计的书籍,旨在帮助读者全面理解和掌握Maven这一强大的项目管理和构建工具。Maven不仅简化了项目的构建过程,还通过约定优于配置的原则,让开发环境的设置变得标准...
** Maven权威指南中文详解 ** Maven,一个Java项目管理和综合工具,是开发人员不可或缺的神器,尤其在大型企业级项目中,它以其强大的依赖管理、构建自动化和标准化的项目结构,大大提升了开发效率。本篇文章将基于...
**Maven权威指南** 《Maven权威指南》是Java开发者必备的工具书,它全面而深入地介绍了Maven这一强大的项目管理和构建工具。Maven不仅仅是一个编译工具,更是Java开发过程中的一个中心枢纽,它简化了项目的构建、...
### Maven权威指南中文版知识点概览 #### 一、引言与Maven概念 - **Maven概述**:Maven是一种项目管理和理解工具,旨在通过一套标准流程来简化项目的构建过程。 - **约定优于配置(Convention Over Configuration)...
maven权威指南中文版,
maven 权威指南(中文版) 。
《Maven权威指南中文完整版清晰》是一本深入解析Maven构建工具的教程,它为Java开发者提供了详尽的指导,帮助他们理解和掌握Maven的使用。Maven是Apache软件基金会开发的一个项目管理工具,主要用于Java项目的构建、...
**Maven中文完整版权威指南**是一本专为Java开发者设计的综合性指南,全面解析了Maven这一强大的项目管理和构建工具。Maven以其自动化构建、依赖管理和项目信息管理的能力,极大地简化了Java项目的构建过程,使得...
Maven 权威指南(中文) 非扫描版 如何在 windows 环境下配置Maven: 一、maven 在windows上的安装 1、下载apache-maven-3 的压缩包,并解压到 E:\developTools\apache-maven-3.1.1 2、配置环境变量 MAVEN_...
### Maven权威指南知识点总结 #### 一、Maven概述 **1.1 Maven定义与功能** Maven是一款项目管理和理解工具。它通过一系列标准集合、项目生命周期、依赖管理系统以及插件系统来支持项目的构建和管理。 **1.2 ...
《Maven权威指南开发实例代码》是一本深入探讨Maven构建工具的实践性书籍,它提供了丰富的示例代码,帮助开发者全面理解并掌握Maven的使用。Maven是Apache软件基金会开发的一款项目管理和综合工具,它主要负责管理...
Maven是一种项目管理工具,主要用于Java项目。其目标是提供一个标准化的项目...随着项目需求的增加,Maven通过插件系统来增强其功能,支持多模块项目和企业级应用的构建,使其成为Java开发领域内一个不可或缺的工具。