0
点赞
收藏
分享

微信扫一扫

【Maven简介,安装】

哈哈镜6567 2022-04-02 阅读 45
java

Maven简介,安装

简介安装配置环境

1.1 简介

  maven最主要体现在两个词上:项目和管理。maven给我们整个开发团队找出了一种能够更加科学的去管理我们项目的思想。maven通过使用配置文件的方式使得项目在管理和交接的过程中成本变得非常低。maven提出了一种叫做maven仓库的概念,使得我们可以将第三方和我们需要引用的项目都放置在maven仓库当中。如果其他人或项目组也需要使用,就可以直接通过maven进行配置就行。这样就可以将人员成本、沟通成本等等都进行降低。
如果还不理解我们举个例子:加入我们现在想做一份菜:糖醋排骨。如果我们想要做这道菜,那么我们首先要先去菜市场买排骨、糖、醋、......,而且在做的时候还要注意使用糖醋的用量等等。那么如果有一个超市,该超市有卖糖醋排骨的料理包,这是不是就能很大的节省我们做饭和买菜的时间开销。其实maven就是这个卖料理包的超市,当人卖的不是料理包,而是一系列的jar包。这样我们在写代码的时候就不需要去其他网站上下载一大堆的jar包。

1.2 项目构建

  不知道大家有没有意识到,构建(build)是每一个程序员都在做的工作。仔细观察我们会发现,除了编写代码,我们每天都有相当一部分时间花在了编译,运行单元测试,生成文档、打包和部署等繁琐和不起眼的工作上,这就是构建。如果我们现在还是手工的做这些事情,那么时间成本就太高了,于是有人用软件的方法让这一系列工作完全自动化。是软件构建完全像流水线一样,只需要一条简单的命令,所有繁琐的步骤就能很快的自动完成。

1.3 项目构建工具

Ant构建
最早的构建工具,基于IDE,大概是2000年有的,当时最流行的java构建工具,不过他的xml脚本编写风格让xml文件特别大。对工程构建过程中的过程控制的特别好。
Maven [ java ]
Maven是一个项目管理和整合工具。Maven为开发者提供了一整套完整的生命周期框架。开发团队几乎不用花多长时间就能够自动完成工程的基础构建配置。他填补了Ant的缺点,Maven第一次支持了从网上下载的功能,仍然采用xml作为配置文件格式Maven专注的是项目依赖,使用java编写。
Gradle
属于结合以上两个的优势,他继承了Ant的灵活和Maven的生命周期管理,他最终被google作为了Android御用管理工具。他最大的区别是不用XML作为配置文件格式,采用了DSL格式,使得脚本更加简洁。
目前市面上Ant比较老,所以一般是一些比较传统的软件企业公司使用,Maven使用java编写,是当下大多数互联网公司使用的一种构建工具,中文文档也比较齐全,gradle是用groovy编写,目前比较新的构建工具一些初创互联网公司会使用,以后会有很大的使用空间。

1.4 Maven的四大特征
1.4.1 依赖管理系统

      Maven为java世界引入了一个新的依赖管理系统jar包管理 jar包升级时修改配置文件即可。在java世界中,可以用gropId、artifactId、version组成Coordination(坐标)唯一标识一个依赖。
任何基于maven构建的项目自身也必须定义这三个属性。
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
坐标属性的理解
Maven坐标为各个组件引入了新秩序,任何一个组件都必须明确定义自己的坐标。
groupId
定义当前Maven项目隶属的实际项目-公司名称。(jar包所在仓库路径)由于maven中模块的概念,因此一个项目实际往往会被分成多个模块。比如Spring是一个实际的项目,其对应的Maven模块会有很多,比如Spring-croe,spring-webmvc等。
artifactid
该元素定义实际项目中的Maven模块-项目名称,推荐的做法是使用实际项目名称作为atrifactid的前缀。比如:Spring-bean,Spring-webmvc等。
version
该元素定义Maven项目当前所处的版本。
采用依赖管理的好处是能够大大减少我们对jar包下载和管理的难度。比如项目当中如果有100个jar包,难道我们需要从网上下载这100个jar包吗?显然如果利用maven提供给我们的坐标,就可以很快完成项目的构建。

1.4.2 多模块构建

   我们在写项目的时候往往需要将 dao service controller 层分离讲一个项目分解为多个模块已经是一种通用的方式。

1.4.3 一致的项目结构

  我们当初在eclipse上边写的项目如果导入到idea上边,那么就会出现很多奇奇怪怪的问题,同理,将idea上边的项目导入到eclipse当中也是一样。究其原因是因为我们在这两个编译器上的项目的目录结构是不一致的。而maven在设计之初的理念就是Conversion over configuration (约定大于配置)。其制定了一套项目目录结构作为标准的java项目结构,解决不同的ida带来文件目录不一致的问题。

1.4.4 一致的构建模型和插件机制

   这一个项目当中我们往往会引入很多插件,比如tomcat服务器或者jetty(嵌入式服务器),为了实现项目组内插件的统一,maven提供了一套机制来包证这要机制的施行。
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.8.v20150217</version>
<configuration>
<httpConnector>
<port>80</port>
</httpConnector>
<stopKey>shutdown</stopKey>
<stopPort>9966</stopPort>
</configuration>
</plugin>
</plugins>

安装

2.1 Maven的安装配置
2.1.1检测jdk的版本
jdk版本1.7及以上版本

2.1.2下载maven

2.1.3配置maven环境变量
解压后把maven的根目录配置到下同环境变量中Maven_HOME,将bin目录配置到path变量中。
注:maven解压后存放的目录不要包含中文和空格。
编辑环境变量 :
变量名:MAVEN_HOME
变量值:自己的安装目录

编辑系统变量 Path
添加变量值:%MAVEN_HOME%\bin
检验是否安装成功

2.2 认识maven的目录结构
Maven项目目录结构
maven的目录结构在所有的编译器下边都是能够运行的

任务:手动创建一个maven项目,并编译运行成功。
2.2.1 创建一个文件夹作为项目的根目录
1.创建如下结构的目录

2.在pom.xml文件中写入如下内容(不用记忆)

<?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/xsd/maven-4.0.0.xsd">


<modelVersion>4.0.0</modelVersion> <!-- 制定pom模型的版本 -->

<groupId>com.qcby</groupId> <!-- 定义了项目属于那个组,这个组往往和项目所在的组织和公司存在关联 -->
<artifactId>maven</artifactId><!-- 定义了当前Maven项目组中唯一的ID -->
<version>1.0-SNAPSHOT</version><!--版本:SNAPSHOT(快照,开发版) alpha(内部测试版) beta(公开测试版) Relaese | RC (发布版) GA(正常版本) -->
<packaging>war</packaging>

<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>

</project>

3.在mian–>java–》下边创建java文件
在这里插入图片描述

4.cmd下编译并运行
1.修改默认仓库位置
打开maven目录 -> conf -> settings.xml
D:\maven

<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

1.编译java文件
cmd下面,进入项目的根目录(需要使用管理员权限)
mvn compile

2.执行main方法
mvn exec:java -Dexec.mainClass=“com.qcby.Hello”

如果编译不成功,可能出现的问题
1.不是使用管理员执行dos命名
2.JDK环境变量配置有问题,重新配置jdk
3.编写代码时,类里边有代码出现

举报

相关推荐

0 条评论