目录

Maven简介

1.1 软件开发中的阶段

1.2 Maven能做什么

1.3 什么是Maven

1.4 Maven的概念

1.5 Maven安装

Maven的核心概念

2.1约定的目录结构

2.2 创建maven项目

2.3 pom文件

项目使用gav

依赖dependency

packaging 项目打包

build:构建项目的相关操作

parent(继承)

modules(聚合)

2.4  仓库

maven仓库存什么

仓库的分类

2.5 maven的生命周期,插件和命令

依赖管理

常用设置

ideal中刚开始构建一个maven项目

多模块管理

Maven简介

1.1 软件开发中的阶段

需求阶段:分析项目具体完成功能,有什么要求,具体怎么实现。

设计阶段:根据分析结果,设计项目的使用什么技术,解决难点。

开发阶段:编码实现功能。编译代码。自我测试。

测试阶段:专业测试人员,测整个项目功能十分符合设计要求,出一个测试报告。

项目的打包,发布阶段:给用户安装项目

1.2 Maven能做什么

(1)项目自动构建,帮助开发人员做项目代码的编译,测试,打包,安装,部署。

(2)管理依赖。

1.3 什么是Maven

maven是项目的自动化构建工具,管理项目的依赖

构建过程中的各个环节:清理,编译,测试,报告,打包,安装,部署。

1.4 Maven的概念

1.  POM.xml:即Project Object Model项目对象模型。Maven把一个项目的结构和内容抽象成一个模型,在xml文件中进行声明,以方便进行构建和描述,pom.xml是Maven的灵魂

1.5 Maven安装

1、 确保安装了java环境:maven本身就是java 写的,所以要求必须安
装JDK。 
查看java环境变量:echo %JAVA_HOME% 
2、 下载并解压maven安装程序: 
http://maven.apache.org/download.cgi 
3、 配置Maven的环境变量:path=maven解压路径\bin

4.mvn -v,如出现以下,则配置正确。

Maven的核心概念

2.1约定的目录结构

Maven项目使用的大多数人所遵循的目录结构。叫做约定的目录结构。

一个maven项目是一个文件夹。比如我们项目叫做hello

hello  项目文件夹

\src

\main              主程序目录(完成项目功能的代码和配置文件)

\java       源代码(包和相关定义的类)

\resource    配置文件

\test                测试程序代码(开发人员自己写的测试代码)

\java        测试代码的

\resource  测试程序需要的配置文件

\pom.xml         maven的配置文件,核心文件

2.2 创建maven项目

2.3 pom文件

即project object Model 项目对象模型,Maven把一个项目的结构和内容抽象成一个模型,在xml文件中进行声明,以方便构建和描述。

<?xml version="1.0" encoding="UTF-8"?>
<!--project是根标签,后面是约束文件-->
<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"><!--pom模型版本--><modelVersion>4.0.0</modelVersion>
<!--坐标组成:
groupId:组织名称。公司或者单位的标识,公司域名的倒写或者如果项目规模比较大,也是可以 域名倒写 + 大项目名字。
例子:www.baidu.com 无人车           com.baidu.appollo(无人车)
artifactId:如果groupId中有项目,此时当前的值就是子项目名称
version:项目的版本,使用的数字。三位组成。例如:主版本号.次版本.小版本号          注意:版本号中有-SNAPSHOT,表示快照,不是稳定的版本groupId 、artifactId 、version 三个元素生成了一个 Maven 项目的基本坐标,在众多的maven 项目中可以唯一定位到某一个项目。坐标也决定着将来项目在仓库中的路径及名称。--><groupId>com.bjpowernode</groupId><artifactId>ch01-maven</artifactId><version>1.0-SNAPSHOT</version><!--packaging代表项目打包类型-->
<packaging>jar<\packaging><properties>
//gav<java.version>1.8</java.version><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties>//日志jar包
<dependencies>
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.16</version>
</dependency>
</dependencies></project>

项目使用gav

1.每个maven项目都需要有一个自己的gav

2.管理依赖,需要使用其他的jar,也需要使用gav来作为标识。

//mysql驱动
<dependency>
//gav<groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.21</version>
</dependency>

搜索坐标地址:https://mvnrepository.com

依赖dependency

依赖:项目中要使用的jar包。

需要使用maven表示依赖,通过dependency和gav一起完成依赖的使用。然后maven回去互联网下载到本机,你项目就可以使用。由maven管理这些jar包。

//日志jar包
<dependencies>
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.16</version>
</dependency>
</dependencies>

packaging 项目打包

packaging:打包类型有jar,war,ear,pom等。位置:项目坐标下面。

build:构建项目的相关操作

<build>   <plugins>   <plugin>   <groupId>org.apache.maven.plugins</groupId>   <artifactId>maven-compiler-plugin</artifactId>   <version>3.8.1</version>   <configuration>   <source>1.8</source>   <target>1.8</target>   </configuration>   </plugin>   </plugins>
</build>

parent(继承)

modules(聚合)

2.4  仓库

maven仓库存什么

1.maven工具自己需要的jar包,maven要实现一些功能,也需要jar包。

2.第三方的其他jar。例如mysql jar包

3.自己写的程序,可以打包为jar存放到仓库

仓库的分类

1.本地仓库(本机仓库):位于你自己的计算机,他是磁盘中的目录

默认位置:是你登录操作系统账号的目录中/C:\Users\Administrator\.m2\repository

修改本地仓库路径:修改maven工具的配置文件(/conf/setting.xml)

步骤:1.创建目录作为仓库使用,目录不要有空格,中文。例如:D:\BaiduNetdiskDownload\openrepository

2.修改setting.xml文件,指定D:\BaiduNetdiskDownload\openrepository这个目录作为本地仓库

 <!-- localRepository| The path to the local repository maven will use to store artifacts.|| Default: ${user.home}/.m2/repository<localRepository>/path/to/local/repo</localRepository>--><localRepository>D:\BaiduNetdiskDownload\openrepository</localRepository>

3.把/C:\Users\Administrator\.m2\repository目录下文件拷贝到D:\BaiduNetdiskDownload\openrepository

或者找到我们的maven项目下,敲入cmd,进入那个目录下,然后敲入mvn compile。

2.5 maven的生命周期,插件和命令

maven的生命周期:项目构建的各个阶段,包括清理,编译,测试,报告,打包,安装,部署

插件:要完成构建项目的各个阶段,要使用maven的命令,执行命令的功能是通过插件完成,插件就是jar包,一些类。

插件

maven-compiler-plugin:3.1:编译.java文件

maven-resources-plugin:2.6:作用把src/main/resource目录中的文件拷贝到target/classes目录中

maven-jar-plugin:2.4:jar:作用是打包处理,生成jar扩展文件,会放在target目录下。名字是:ch01-maven-1.0-SNAPSHOT.jar是坐标中:artifactid+version。

maven-install-plugin:2.4:作用是安装那个打包的文件安装到maven仓库。安装位置与项目坐标有关:坐标为C:\Users\Administrator\.m2\repository\com\bjpowernode\ch01-maven\1.0-SNAPSHOT\ch01-maven-1.0-SNAPSHOT.jar

<groupId>com.bjpowernode</groupId><artifactId>ch01-maven</artifactId><version>1.0-SNAPSHOT</version>

命令:执行maven是由命令发出。比如mvn compile

(1) mvn clean :清理命令,删除以前的声明的数据。,删除target目录。

(2)mvn compile:编译命令,执行的代码编译,把src/main/java中的.java文件编译成.class文件以及文件拷贝(包括.class文件的拷贝到target/classes和src/main/resource下文件拷贝到target/classes)

(3)mvn test-compile:编译命令,执行的代码编译,把src/test/java中的.java文件编译成.class文件以及文件拷贝(包括.class文件的拷贝到target/classes和src/main/resource下文件拷贝到target/classes)

(4)mvn test:作用执行测试src/main/java目录中的主程序代码是否符合要求。

单元测试(junit):方法是测试的最小单元。

(5)mvn package:打包,作用是把项目中的class文件和配置文件都放到一个压缩文件中

(6)mvn install:要把我们生成的这个打包文件安装到maven仓库中。

测试

1.测试类的定义:名称一般是Test+要测试类的名称

2.测试类它的包名和你要测试的类包名一样

3.在类中定义方法,要测试代码

方法定义:public void Test+测试的方法名

依赖管理

依赖范围:使用scope标签来表示依赖范围。表示这个依赖的在项目构建的那个阶段起作用。

依赖范围值scope:

compile(编译):默认参与项目构建的所有阶段(清理,编译,打包,部署等)

test(测试):只在项目测试阶段起作用。

provide:提供者,项目部署到服务器时候,不需要提供这个jar包,而是由服务器提供依赖的jar包

明显有jsp和servelet依赖。还没部署到服务器上时候需要这些jar包,因为idea没有。

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

常用设置

1.properties标签里面的配置

<properties> <maven.compiler.source>1.8</maven.compiler.source>  源码编译jdk版本 <maven.compiler.target>1.8</maven.compiler.target>    运行代码的jdk版本 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  项目
构建使用的编码,避免中文乱码
<project.reporting.outputEncoding>UTF-8 </project.reporting.outputEncoding> 生成报告的编码 </properties>

2.全局变量

在properties定义标签,这个标签就是一个变量,标签的文本就是变量的值。

<properties> <maven.compiler.source>1.8</maven.compiler.source>  源码编译jdk版本 <maven.compiler.target>1.8</maven.compiler.target>    运行代码的jdk版本 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  项目
构建使用的编码,避免中文乱码
<project.reporting.outputEncoding>UTF-8 </project.reporting.outputEncoding> 生成报告的编码
<!--自定义全局变量-->
<spring.version>5.2.2.RELEASE</spring.version>
</properties>

使用全局变量:$(变量名)

<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>$(spring.version)</version>
</dependency>

(3)使用资源插件

处理的配置文件信息,maven默认处理配置文件

1.maven会把src/main/resource目录中的文件,拷贝到target/classes下

2.maven只处理src/main/java中的.java文件,把这些Java文件编译为class,拷贝到target/classes下,src/main/java下其他文件不处理。

针对2,我们要把src/main/java下其他文件拷贝到target/classes,我们就需要借助一个资源插件build

<build>
<resources> <resource> <directory>src/main/java</directory><!--所在的目录--> <includes>
<!--包括目录下的.properties,.xml 文件都会扫描到--> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <!-- filtering选项 false不启用过滤器, *.property已经起到过
滤的作用了 --> <filtering>false</filtering> </resource> </resources>
</build>

ideal中刚开始构建一个maven项目

File---->Settings:设置maven安装主目录、maven的settings.xml文件和本地仓库所在位置

 

多模块管理

pom是项目对象模型,该文件是可以被子工程继承,maven多模块管理,其实就是让它的子模块的pom文件来继承父工程的pom。

commonModel:提供公共的基础服务,比如工具类、常量类等等;

bussinessModel:业务模块,是系统真正要实现的业务,依赖于 common 模块,比如订 单管理、财务统计、会员管理等;

application:可发布的 web 应用,由各个 bussinessModel 组成,最终满足项目整体需求;

第三方模块:包括各类框架,Spring、MyBatis、日志等。整个应用都是依赖它们完成开 发的

ideal多模块管理方法:看我上传的文档。java/工具/maven/文档/北京动力节点-郭鑫老师

Maven(自动化构建工具)相关推荐

  1. maven自动化构建工具出现“编码EUC_CN的不可映射字符”

    在maven中默认采用gbk编码,我在IDEA中编写的代码默认为utf-8,因此在自动化构建的过程中就可能出现"编码EUC_CN的不可映射字符",此时可以在pom.xml文件中添加 ...

  2. Maven自动化构建工具

    第一章.Maven简介 Maven的作用 Maven中的概念

  3. 不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中制作 JAR 包

    不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中制作 JAR 包 说明 步骤 说明 本文的 原始 Java 程序,指的是不使用项目构建工具(如 Maven)而建立起的一 ...

  4. 不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中整合 Tomcat 部署 Web 应用

    不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中整合 Tomcat 部署 Web 应用   我们知道,部署 Web 应用可以直接将 Web 应用的文件夹置于 Tomca ...

  5. python自动化构建工具_Python自动化构建工具scons使用入门笔记

    这段时间用到了scons,这里总结下,也方便我以后查阅. 一.安装sconsLinux环境(以CentOS为例) 1.yum安装 yum install scons 2.源码安装 下载scons:ht ...

  6. (28)自动化构建工具Gulp

    一.自动化构建工具介绍 Grunt:它是最早的自动化构建工具,它是基于临时文件进行构建的,构建速度慢. Gulp:它是基于内存进行构建的.是我们目前最流行最常用的自动化构建工具.构建速度快,上手更容易 ...

  7. 前端自动化构建工具之webpack入门——简单入门

    写在前面 这篇博客也是参照别人的webpack入门,加上自己的一些操作,还有我在此过程中遇到的困难.如果是已经入门的或者这方面的高手,请绕行,也请勿吐槽. 正文开始 我们为什么要学习webpack 首 ...

  8. 前端自动化构建工具:用Gulp4.0搭建一个基本的前端开发环境

    一个项目的完成一般需要经过三个步骤:初始化.开发和部署.在前端开发过程中,我们经常需要依靠一些自动化构建工具来优化前端工作流程,来帮助我们完成一系列繁琐的工作,例如浏览器热更新.ES6编译.代码压缩. ...

  9. 常用的前端自动化构建工具gulp/grunt/fis --简介

    常用的前端自动化构建工具 之前我们自动化构建将入门级别使用的 NPM Scripts自动化构建工具对于相对复杂的项目构建会比较吃力,那么我们会了解 Gulp Grunt fIS 用法基本相同:都是通过 ...

最新文章

  1. 人人都能看懂的EM算法推导
  2. HTML5 geolocation和BaiduMap、BingMap、GoogleMap
  3. LED音乐频谱之输出数据处理
  4. SaaS加速器II 能力中心:互利互补 共享商业红利
  5. Determine destination location of apt-get install package?
  6. Java 高频面试题:聊一聊 JUC 下的 LinkedBlockingQueue
  7. 服务注册与发现用mysql_yeasul: 轻量级服务注册与发现中心,具有健康检查功能。...
  8. 如何用深度学习进行CT影像肺结节探测(附有基于Intel Extended Caffe的3D Faster RCNN代码开源)
  9. ES6.X,你必须知道的API和相关技巧
  10. PAT_B_1082_C++(20分)
  11. codevs 1907 方格取数 3
  12. 百度二年级手工机器人_让父母少弯腰的家务神器——追觅扫拖机器人慧目F9评测...
  13. java为什么不使用odbc_java jdbc和odbc的区别是什么?jdbc和odbc的关系是怎样的?
  14. java+oracle数据库锁,数据库学习之Oracle数据库\记录被另一个用户锁住\解决方法...
  15. 洛谷 P1396 营救
  16. 这里面有一些关于依图工作的内容
  17. Cocos2d-x动画播放(序列帧)
  18. ElementUI表格序号翻页后重置的解决办法
  19. 省电指南-ESP8266如何降低功耗
  20. 学生综合素质评价系统c语言,学生综合素质评价表自我评价范文(2)

热门文章

  1. idea的debug功能详解
  2. 长安大学微型计算机原理与接口技术答案,长安大学微机原理与接口技术B卷答案...
  3. 2015年高教社杯全国大学生数学建模竞赛A题 “互联网+”时代的出租车资源配置
  4. 超级棒的一个DP问题详解(入门)
  5. Oracle入门学习详解
  6. div高度、宽度100%|div width、height 100% - div100%
  7. 运维脚本 内存管理统计(5)
  8. 中级认证宝典【全理论】
  9. 数据预处理--缺失值填补《菜菜学习笔记》
  10. MIDI音符输入技巧