`
ywu
  • 浏览: 453008 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

第二章 maven简介

阅读更多

  maven是一个优秀的跨平台项目构建工具。项目构建上文也提到,包括项目的创建、编译、测试、打包、部署等。maven不仅仅是一个构建工具,它还是一个依赖管理工具和项目信息管理工具。依赖简单理解就是项目用到的第三方jar包。我们用到了什么jar包,就说对这个jar包有依赖。项目信息包括项目名称、描述、项目地址、开发人员信息、用到的scm信息、持续集成信息等。

  要使用maven,首先得安装。现在的IDE一般默认都内置maven的支持,比如eclipse。但是内置的maven一般比较新,可能不是太稳定,推荐使用自己安装的maven。

  安装步骤:

  1、安装jdk。maven运行需要用到jdk,因此首先需要安装jdk。

  2、下载。maven官方下载地址:http://maven.apache.org/download.cgi

   3、安装。下载完后是一个压缩包,解压缩即可。解压完后目录结构如下所示:

 其中bin目录包含maven的可执行命令,boot目录包含一个负责创建maven运行所需的类装载器的jar文件,conf目录包含maven的全局配置文件,lib目录包含maven运行时依赖的jar文件;

  4、配置环境变量。将maven的bin目录添加到PATH环境变量中,将maven的安装目录添加到M2_HOME环境变量中。

  

  安装完以后,就能在命令行中使用maven了。打开一个命令行终端,输入命令mvn


 看到如上输出结果,说明maven已经安装好了。

  接下来可以手动创建一个maven项目。在指定目录下新建一个目录,比如hello-world,即项目名,在hello-world下新建src目录,在src目录下新建main目录,在main目录下新建java目录,在java目录下可以新建包com\jiangnan\helloworld,按层次依次创建com、jiangnan、helloworld目录,在helloworld目录下新建一个类HelloWorld:

package com.jiangnan.helloworld;

public class HelloWorld {
	public String sayHello() {
		return "hello maven";
	}
	
	public static void main(String[] args) {
		System.out.println(new HelloWorld().sayHello());
	}
}

 在hello-world目录下新建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>com.jiangnan</groupId>
  <artifactId>hello-world</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>hello-world</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.7</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

 命令行进入hello-world目录,输入mvn clean compile,可以看出命令行在不断输出,如果看到BUILD SUCCESS,就说明命令执行成功了,如果看到BUILD FAILURE,则要查看失败原因。这里仅仅是演示命令行中使用maven,我们平时开发一般会在IDE中集成maven。

 

IDE中集成maven:

这里以eclipse为例,打开eclipse,Window->Preference->Maven->Installations,可以看到默认勾选的是EMBEDDED,去掉这个勾,点击add,选中解压后的maven安装目录,勾上自定义安装的maven,点击Apply,这样maven就集成到eclipse中了。

默认情况下,maven的全局配置文件是在用户家目录下的.m2目录下的settings.xml文件,如果是Windows系统,一般是在c盘用户目录下。默认的本地仓库位于家目录下的repository目录下。Windows系统一般是在c盘,由于会占用c盘空间,而且重装系统的时候可能不注意会格式化,因此我喜欢使用自定义的全局配置文件。打开maven安装目录下conf目录下的settings.xml文件,将localRepository元素的值修改为自定义的路径,作为本地仓库路径,maven下载的构建会存放于此,关于仓库的概念,后续会介绍。


 在eclipse中,Maven->user settings,user settings选择刚才编辑的文件,会看到下面列出了我们刚才配置的本地仓库的路径,点击Apply,OK,这样maven就配置完了。


 

新建maven项目:

新建项目一般会选择maven的archetype来生成项目的骨架。项目的骨架就是指项目的基本结构,比如普通项目结构,会有一个项目名,根目录下有src目录,如果是web项目,还会有WEB-INF目录,lib目录,或者web.xml等,而maven的archetype就是用来帮我们生成这些目录和文件的,不同的archetype生成的目录结构也不一样。

在eclipse中新建maven项目,File->New->Other->Maven->Maven Project,Next,Next,接下来列出了maven默认提供的archetype



 对于普通项目,我们一般会选择maven-archetype-quickstart,对于web项目,选择maven-archetype-webapp;接下来填写groupId,artifactId,version,这三个是maven的坐标,将在下一章详细介绍



 点击finish,maven项目就建好了。项目结构大致如下所示:


convension over configuration(约定大于配置)

我们之前也说过,传统项目,项目结构比较混乱,配置文件、测试代码存放位置不统一,maven基于很多实践经验,对于项目做了一些基本的约定,我们只要遵守这些约定就可以了,比如:

1、项目的根目录下有一个pom.xml,用于配置maven的依赖、插件等信息,我们后面会详细阐述

2、根目录下有一个src目录,src目录下分main和test目录,main目录下放置主代码相关的东西,以后会发布到生产;test目录下放置测试相关东西,如单元测试、测试配置文件等,这些东西只在测试时使用,不会发布到生产环境;main、test目录下又分java和resources目录,这里将代码和配置文件分开了,java目录存放代码,而resources目录存放配置文件,这样的项目结构就清晰多了;

3、项目的编译输出默认在项目根目录下的target目录下。

除此以外,maven还有其他的约定,后面涉及的时候再介绍。

通过maven创建的项目,使用maven的约定,我们看到其他项目的时候,都是我们熟悉的结构,不在需要花时间去熟悉。当然,这是maven默认的行为,如果想改变这种行为,也是可以的,只不过不推荐,后面我们会讲述如何改变默认的行为。

 

接下来我们要阐述maven的几个核心概念,如坐标、依赖、仓库、插件等。

 

  • 大小: 16.9 KB
  • 大小: 74.2 KB
  • 大小: 14.8 KB
  • 大小: 52.4 KB
  • 大小: 50.7 KB
  • 大小: 34.8 KB
  • 大小: 30.7 KB
  • 大小: 89.3 KB
分享到:
评论

相关推荐

    第二章 企业项目开发--maven父子模块1

    第二章 企业项目开发--maven父子模块在实际开发中,我们基本都会用maven父子分模块的方式进行项目的开发。2.2、实际操作2.2.1、手工建立一个ssmm

    Maven repository.part1

    Maven repository.part1 for Java RESTful Web Service实战第二章需要的Mave库

    Maven repository.part2

    Maven repository.part1 for Java RESTful Web Service实战第二章需要的Mave库

    SpringBoot开发实战(理论基础)

    第二章 Maven基础 第三章 Spring MVC基础 第四章 Spring Boot入门 第五章 Spring Boot核心 第六章 Spring Boot数据访问 第七章 Spring Boot缓存管理 第八章 Spring Boot消息服务 第九章 Spring Boot部署 第十章 系统...

    JBPM5用户指南-PDF电子书-官方文档翻译

    第二章 获得开始 第三章 安装 第四章 核心引擎的API 第五章 核心引擎:基础 第六章 BPMN2.0核心引擎 第七章 核心引擎:持久化和事务 第八章 核心引擎:示例 第九章 Eclipse BPMN 2.0 Plugin 第十章 设计器 第十一章 ...

    MavenTest9

    MavenTest9,Shiro第9章Demo,可运行,本人学习Shiro时作出的总结,现给拿出来分享给大家,一起进步。!!!!

    第四章 第二节:后端服务开发.pdf

    第二节 内容简介 • 认识后端框架 • Mysql数据库介绍 • MyBatis框架 • SpringBoot框架 • Maven介绍 • 初始化并运行第一个后端项目 • 第一个springboot项目详解 • 从无到有搭建第一个springboot项目 5 • 应用...

    第二章 : 微服务环境搭建

    我们承接上一篇开始 第一章 :微服务的架构介绍发展 SpringCloudAlibaba技术栈的学习 我们本次是使用的电商项目中的商品、订单、用户为案例进行讲解。 2.1 案例准备 2.1.1 技术选型 maven:3.6.0 数据库:MySQL 5.7 ...

    Java例题源码第二章-spmia-chapter1:第1章Spring微服务实战

    Java例题源码第二章介绍 欢迎阅读 Spring Microservices in Action,第 1 章。第 1 章是本书的介绍。 本章中使用的唯一代码是一个简单的“helloworld”风格的服务,它演示了如何使用 Spring Boot 构建一个简单的...

    Java例题源码第二章-spmia-chapter2:spmia-第2章

    Java例题源码第二章介绍 欢迎阅读 Spring Microservices in Action,第 2 章。第 2 章重点介绍微服务究竟是什么,并详细介绍如何使用 Spring Boot 构建微服务。 此代码中的本章重点介绍构建称为许可服务的单一服务。...

    第二章:微服务环境搭建

    2.1案例准备2.1.1技术选型maven:3.6.0数据库:MySQL5.7持久层:SpingDataJpa其他:SpringCloudAlibaba技术栈2.1.2模块设计下面是项目端口号说明及项目结构springcloud-alibaba父工程shop-common公共模块【实体类】...

    基于javaweb仿京东商城管理系统的设计与实现.docx

    第二章 技术背景 10 2.1 JavaWeb技术概述 10 2.2 Struts2框架介绍 11 2.3 Hibernate框架介绍 12 2.4 Spring框架介绍 13 2.5 Maven项目管理工具介绍 14 第三章 系统需求分析与设计 16 3.1 需求分析 16 3.2 系统设计 ...

    易购二手物品信息平台的设计与实现(论文+源码)-kaic.rar

    第二章 系统相关技术 2.1 Java语言 2.2 MySQL数据库 2.3 Maven 2.4 SSM框架集 第三章 系统需求分析 3.1 系统整体性概述 3.2 功能性需求分析 3.3 非功能性需求分析 3.3.1 实时性需求 3.3.2 安全性需求 3.3.3 可靠性...

    基于J2EE人事考勤管理系统设计与实现(论文+项目源码)运行环境: idea ,maven,mysql

    第二章 需求分析 5 2.1 总体需求分析 5 2.2 系统用例 5 2.2.1 管理员(领导)用例 6 2.2.2 部门经理用工用例 6 2.2.3 普通员工用例 7 2.3 功能模块分析 7 2.3.1 个人信息模块 8 2.3.2 员工管理模块 8 2.3.3 考勤管理...

    基于SpringBoot+MyBatis的外卖平台系统

    第二章 开发技术介绍 8 2.1 JAVA技术 8 2.2 MySQL数据库 8 2.3 Tomcat介绍 9 2.4 SpringBoot框架 9 2.5 Maven 仓库的使用 10 第三章 系统分析与设计 12 3.1 可行性分析 12 3.2 系统性能分析 13 3.3 系统功能需求分析...

    基于SSM校园二手交易平台设计与实现.rar(毕业设计+项目源码+数据库文件+答辩PPT)

    第二章 相关技术介绍 10 2.1 Javascript 10 2.2 Ajax 10 2.3 MySQL 10 2.4 SSM框架 10 2.5 Maven框架 11 2.6 JSP 12 2.7 B/S模式 12 2.8 BootStrap 13 2.9系统开发平台及运行环境 14 2.9.1系统开发平台 14 2.9.2运行...

    基于SSM校园二手交易平台设计与实现源码+数据库(毕业设计).zip

    第二章 相关技术介绍 10 2.1 Javascript 10 2.2 Ajax 10 2.3 MySQL 10 2.4 SSM框架 10 2.5 Maven框架 11 2.6 JSP 12 2.7 B/S模式 12 2.8 BootStrap 13 2.9系统开发平台及运行环境 14 2.9.1系统开发平台 14 2.9.2运行...

    基于javaweb图书馆座位预约管理系统的设计与实现.rar(论文+项目源码)

    第二章 相关技术介绍 4 2.1相关技术介绍 4 2.1.2 Java开发语言 4 2.1.3 Maven版本管理 5 2.1.4 MySQL数据库 5 2.1.5 Spring框架 5 2.1.6 Tomcat服务器 6 2.1.7 Idea开发工具 6 2.2环境开发条件 8 第三章 系统需求...

Global site tag (gtag.js) - Google Analytics