1.概述
新项目需要用到SSH,和maven。以前从未接触过这玩意。现在来了解下。网上给的那些定义根本看不懂好吗。现在东拼西凑找点我能看懂的学学。
先说说maven是干嘛的:试图把软件开发过程中本该专人负责的事务性工作伪装成一门“技术”推给程序员,以便降低人工成本的一种工具(图省事)。
Maven功能:项目构建、项目依赖管理、软件项目持续集成、版本管理、项目的站点描述信息管理。
这说的是人话吗?
待我看看《maven实战》这本书系统的了解下再说。
以下做点摘录。
1.除了编写代码,我们每天有一部分时间花在了编译、运行单元测试、生成文档、打包等繁琐的工作上,这就是构建。现在我们需要软件构建像全自动流水线一样,只需要一条简单的指令,所有繁琐的步骤能够自动完成,很快能得到最终结果。
2.Mave能办我们自动化上述过程(按照某一个)。
3.Maven抽象了一个完整的构建生命周期模型,总结了大量项目的实际需求,如果遵循这个和模型可以避免
很多不必要的错误。
从实战中来吧:
2.在Windows上安装Maven
2.1.1检查JDK
控制台输入 java -version ,出现以下结果
C:\Users\爹>java -versionjava version "1.8.0_92"Java(TM) SE Runtime Environment (build 1.8.0_92-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
2.1.2 下载Mavenhttp://maven.apache.org/download.cgi
Maven3完全兼容Maven2。
这篇文章写了配置Maven环境变量。
2.2安装m2eclipse插件
这篇文章讲解比较详细,进测试能成功。
使用命令行控制的Maven。不要使用IDE内嵌的Maven。
3.Maven使用入门
以一个Hello Word项目为例。
3.1编写POM
Maven 核心是pom.xml.(Project Object Medel,项目对象模型)定义了一个项目的基本信息,用于描述项目如何构建,声明项目依赖等
先写一个最简单的pom.xml文件。
4.0.0 com.lirui.hw hello-word 1.0-SNAPSHOT Maven Hello World Project
project是pom.xml的根元素。声明命名空间。虽然这些属性不是必须的,但是能让第三方工具(xml编辑器)帮助我们快速编辑POM。
modelVersion 指定当前pom版本。一般4.0.0。
groupId,artifactid,version定义了Maven一个项目的基本定义。任何jar,pom,war都是以这些基本坐标进去区分。
groupId 定义项目属于哪个组。(项目中某一个包名)
artifactid 定义当前项目在组中的唯一ID。(直接理解为项目名称吧)
version 定义当前项目版本,SNAPSHOT意为快照,说明项目还处在开发阶段。
配置maven项目可用命令行配置,具体《maven实战》有写,现在就看看通过eclipse创建maven工程,(同样可以用eclipse导入工程)算了,太简单,懒得说。
再摘录一些《maven实战》里面的话。
1.Maven的世界拥有熟练非常巨大的构件(jar,war包等)。Maven引入坐标概念之前,我们无法用任何方式来唯一地标识这些构建。(意思是我们要在各个不同的网站下载这些jar包,下载这些东西应该自动化,规范化)。
2.Maven定义了这样一组规则:世界上任何构件都可以用Maven坐标唯一标识。坐标元素包括 groupId,artifactId,version,packaging,classifier。只要我们提供正确的坐标,就能找到对应构建(Maven内置一个中央仓库,需要什么都往里面下载)。
坐标详解
groupId:定义当前Maven项目隶属的实际项目,一个实际项目划分成很多模块。类似于一个子项目实现了部分功能。groupId表示当前项目的父项目。
artifactId:该元素定义了实际项目中的的一个Maven项目(模块)。定义实现某一功能的子项目。
version 当前maven项目的版本。
packaging 定义Maven项目的打包方式,jar,war。。。。(可选,默认是jar)
classifier 用来帮助构件输出一些附属构件。如主构建是。。。.jar。附属构建是javadoc.jar source.jar 包含java文档和源代码。(不能直接定义)