【maven的介绍和常用命令--maven项目搭建及环境配置步骤】

1.主要内容

在这里插入图片描述

2. Maven的简介

2.1. 简介

Maven【[ˈmevən]】这个词可以翻译为"专家",“内⾏”。 作为Apache组织中的⼀个颇为成功的开源项
⽬,Maven主要服务于基于java平台的项⽬构建,依赖管理和项⽬信息管理。
⽆论是⼩型的开源类库项⽬,还是⼤型的企业级应⽤; ⽆论是传统的瀑布式开发,还是流⾏的敏捷开发,
Maven都能⼤显身⼿。

2.2. 项⽬构建

不管你是否意识到,构建(build)是每⼀位程序员每天都在做的⼯作。早上来到公司,我们做的第⼀件事就是从源码库签出最新的代码,然后进⾏单元测试,如果测试失败,会找相关的同事⼀起调试,修复错误代码。 接着回到⾃⼰的⼯作上来,编写⾃⼰的单元测试及产品代码。
仔细总结⼀下,我们会发现,除了编写源代码,我们每天有相当⼀部分时间花在了编译,运⾏单元测试,⽣成⽂档,打包和部署等繁琐且不起眼的⼯作上,这就是构建。 如果我们现在还⼿⼯这样做,那成本也太⾼了,于是有⼈⽤软件的⽅法让这⼀系列⼯作完全⾃动化,使得软件的构建可以像全⾃动流⽔线 ⼀样,只需要⼀条简单的命令,所有繁琐的步骤都能够⾃动完成,很快就能得到最终结果。

2.3. 项⽬构建⼯具

Ant构建

最早的构建⼯具,基于IDE, ⼤概是2000年有的,当时是最流⾏java构建⼯具,不过它的XML脚本编写
格式让XML⽂件特别⼤。对⼯程构建过程中的过程控制特别好

Maven【JAVA】

项⽬对象模型,通过其描述信息来管理项⽬的构建,报告和⽂档的软件项⽬管理⼯具。它填补了Ant缺点,Maven第⼀次⽀持了从⽹络上下载的功能,仍然采⽤xml作为配置⽂件格式。Maven专注的是依
赖管理,使⽤Java编写。

Gradle

属于结合以上两个的优点,它继承了Ant的灵活和Maven的⽣命周期管理,它最后被google作为了Android御⽤管理⼯具。它最⼤的区别是不⽤XML作为配置⽂件格式,采⽤了DSL格式,使得脚本更加
简洁。
⽬前市⾯上Ant⽐较⽼, 所以⼀般是⼀些⽐较传统的软件企业公司使⽤, Maven使⽤Java编写, 是当下⼤多数互联⽹公司会使⽤的⼀个构建⼯具, 中⽂⽂档也⽐较⻬全, gradle是⽤groovy编写, ⽬前⽐较新型的构建⼯具⼀些初创互联⽹公司会使⽤, 以后会有很⼤的使⽤空间.

2.4. Maven的四⼤特性

2.4.1. 依赖管理系统

Maven为Java世界引⼊了⼀个新的依赖管理系统jar包管理 jar 升级时修改配置⽂件即可。在Java世界中,可以⽤groupId、artifactId、version组成的Coordination(坐标)唯⼀标识⼀个依赖。
任何基于Maven构建的项⽬⾃身也必须定义这三项属性,⽣成的包可以是Jar包,也可以是war包或者jar包。⼀个典型的依赖引⽤如下所示:

<dependency>
<groupId>javax.servlet</groupId> com.baidu
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
ueditor echarts
</dependency>

坐标属性的理解
Maven坐标为各种组件引⼊了秩序,任何⼀个组件都必须明确定义⾃⼰的坐标。
groupId
定义当前Maven项⽬⾪属的实际项⽬-公司名称。(jar包所在仓库路径) 由于Maven中模块的概念,因此⼀个实际项⽬往往会被划分为很多模块。 ⽐如spring是⼀个实际项⽬,其对应的Maven模块会有很多,如spring-core,spring-webmvc等。
artifactId
该元素定义实际项⽬中的⼀个Maven模块-项⽬名, 推荐的做法是使⽤实际项⽬名称作为artifactId的前缀。 ⽐如: spring-bean, spring-webmvc等。
version
该元素定义Maven项⽬当前所处的版本。

2.4.2. 多模块构建

项⽬复查时 dao service controller 层分离将⼀个项⽬分解为多个模块已经是很通⽤的⼀种⽅式。
在Maven中需要定义⼀个parentPOM作为⼀组module的聚合POM。在该POM中可以使⽤标签来定义⼀组⼦模块。parent POM不会有什么实际构建产出。⽽parent POM中的build配置以及依赖配置都会⾃动继承给⼦module。

2.4.3. ⼀致的项⽬结构

Ant时代⼤家创建Java项⽬⽬录时⽐较随意,然后通过Ant配置指定哪些属于source,那些属于testSource等。⽽Maven在设计之初的理念就是Conversion over configuration(约定⼤于配置)。其制定了⼀套项⽬⽬录结构作为标准的Java项⽬结构,解决不同ide 带来的⽂件⽬录不⼀致问题。

2.4.4. ⼀致的构建模型和插件机制

<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.25</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<contextPath>/test</contextPath>
</configuration>
</plugin>

3. Maven的安装配置和⽬录结构

3.1. Maven的安装配置

3.1.1. 检查JDK的版本

JDK版本1.7及以上版本

3.1.2. 下载Maven

下载地址:http://maven.apache.org/download.html

3.1.3. 配置Maven环境变量

解压后把Maven的根⽬录配置到系统环境变量中MAVEN_HOME,将bin⽬录配置到path变量中。 注:maven解压后存放的⽬录不要包含中⽂和空格
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.4. 检查Maven是否安装成功

打开dos窗⼝,执⾏ mvn -v(注意是管理员界面),出现下图信息即安装成功
在这里插入图片描述

3.2. 认识Maven⽬录结构

Maven项⽬⽬录结构
在这里插入图片描述

⼿动创建⼀个Maven项⽬,并编译运⾏成功!

4. Maven命令

作为开发利器的maven,为我们提供了⼗分丰富的命令,了解maven的命令⾏操作并熟练运⽤常⻅的
maven命令还是⼗分必要的,即使譬如IDEA等⼯具给我提供了图形界⾯化⼯具,但其底层还是依靠
maven命令来驱动的。
Maven的命令格式如下:
mvn [plugin-name]:[goal-name]
命令代表的含义:执⾏plugin-name 插件的goal-name ⽬标

4.1. 常⽤命令

在这里插入图片描述

4.2. 命令参数

上⾯列举的只是⽐较通⽤的命令,其实很多命令都可以携带参数以执⾏更精准的任务。

4.2.1. -D 传⼊属性参数

例如:
mvn package -Dmaven.test.skip=true
以 -D 开头,将maven.test.skip 的值设为true ,就是告诉maven打包的时候跳过单元测试。同
理, mvn deploy-Dmaven.test.skip=true 代表部署项⽬并跳过单元测试。

4.2.2. -P 使⽤指定的Profile配置

⽐如项⽬开发需要有多个环境,⼀般为开发,测试,预发,正式4个环境,在pom.xml中的配置如
下:

<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>qa</id>
<properties>
<env>qa</env>
</properties>
</profile>
<profile>
<id>pre</id>
<properties>
<env>pre</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
...... <build>
<filters>
<filter>config/${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...... 
</build>

profiles 定义了各个环境的变量id , filters 中定义了变量配置⽂件的地址,其中地址中的环境
变量就是上⾯profile 中定义的值, resources 中是定义哪些⽬录下的⽂件会被配置⽂件中定义的变
量替换。
通过maven可以实现按不同环境进⾏打包部署,例如:
mvn package -Pdev -Dmaven.test.skip=true
表示打包本地环境,并跳过单元测试

5. IDEA编辑器集成Maven环境

5.1. 设置Maven版本

选择 “File” —> “Other Settings” —> “Settings for New Projects…” —> 搜索 “Maven”
下图是中文版,因为小编是用的中文版

在这里插入图片描述
在这里插入图片描述

6. Maven项⽬的创建

6.1. 创建 Java项⽬

6.1.1. 新建项⽬

  1. 选择 “File” —> “New” —> “Project”
    在这里插入图片描述
    ·
    在这里插入图片描述

在这里插入图片描述
然后就是等待下载完成.

6.1.2. 编译项⽬

  1. 点击右上⻆的 "Add Configurations ",打开 “Run/Debug Configurations” 窗⼝
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    此时就能看到:在这里插入图片描述
    在这里插入图片描述

打包项目:

与上面相似,我们新加一个package的配置就好
在这里插入图片描述
然后点击运行,就会生成我们本项目的jar包
在这里插入图片描述

6.2. 创建 Web项⽬

6.2.1. 创建项⽬

  1. 创建Web项⽬与创建Java项⽬步骤基本⼀致,区别在于选择 Maven模板(web项⽬选择webapp),如图:
    在这里插入图片描述
    其他步骤与上述创建普通的java项目相同
    项目结构目录如下:
    在这里插入图片描述
    web项目创建好后我们需要修改以下配置,请继续往下看

6.2.2. 启动项⽬

6.2.2.1. 修改 JDK 的版本

在这里插入图片描述

6.2.2.2. 设置单元测试的版本

在这里插入图片描述

6.2.2.3. 删除pluginManagement标签

在这里插入图片描述
maven的web项目是需要服务器支持的,需要将服务器集成进来,所以有了下面的操作

6.2.2.4. 添加web部署的插件

可以去maven官网去寻找插件 找到maven的代码粘贴过来。maven官网地址https://mvnrepository.com/artifact/org.mortbay.jetty/jetty/6.1.26
在这里插入图片描述

在 build 标签中添加 plugins 标签
第一步:添加1. Jetty插件,将下面代码放在plugins标签中

org.mortbay.jetty maven-jetty-plugin 6.1.25 10 /test 9090 ```

在这里插入图片描述

第二步:添加2. Tomcat插件

<!-- 设置在plugins标签中 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>8081</port> <!-- 启动端⼝ 默认:8080 -->
<path>/test</path> <!-- 项⽬的站点名,即对外访问路径 -->
<uriEncoding>UTF-8</uriEncoding> <!-- 字符集编码 默认:ISO-8859-1 -->
<server>tomcat7</server> <!-- 服务器名称 -->
</configuration>
</plugin>

在这里插入图片描述
6.2.2.5. 启动项⽬

  1. 点击右上⻆的 "Add Configurations ",打开 “Run/Debug Configurations” 窗⼝
    在这里插入图片描述

  2. 点击左上⻆的 “+” 号,选择 “Maven”
    在这里插入图片描述

  3. Jetty插件配置
    在这里插入图片描述也可以输⼊命令指定端⼝启动

jetty:run -Djetty.port=9090 # 需要将插件配置中的port标签去掉

点击启动图标,启动服务
在这里插入图片描述

启动成功
在这里插入图片描述

浏览器访问效果
4. Tomcat插件配置
在这里插入图片描述

启动⽅式如上,启动成功
在这里插入图片描述

浏览器访问 http://localhost:8080/test
在这里插入图片描述
Maven 依 赖 仓 库 :
https://mvnrepository.com/
Tomcat7插件的命令:
https://tomcat.apache.org/maven-plugin-trunk/tomcat7-maven-plugin/plugin-info.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值