黑马程序员技术交流社区

标题: day_24 Maven [打印本页]

作者: 小北京    时间: 2019-1-11 16:14
标题: day_24 Maven
Maven是一个项目管理工具
做了两件事:
1.统一开发规范与工具
2.统一管理jar包

使用Maven构建的普通Java项目,对源代码,单元测试码,资源乃至后续需要的文件都有专门的目录规划,
最后有一个pom.xml, 这是Maven的核心配置文件, pom称为Project Object Model(项目对象模型),
它用于描述整个Maven项目,所以也称为Maven描述文件.

打开pom.xml,最基础的是这样的:
1
2
3
4
5
6
7
8
9
10
<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.xrq.withmaven</groupId>
  <artifactId>withmaven</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build/>
</project>

这个配置文件是Maven的核心,

1.modelVersion:
指定了当前Maven模型的版本号,对于Maven2和Maven3来说,他只能是4.0.0.
2.groupId:
公司名或是组织名,有三部分组成,每个部分之间以","分隔,第一部分是项目用途,比如"com
,第二部分公司名"baidu",第三部分就是项目名.
3.artifactid:
是Maven的构建项目名,项目中有子项目,就可以是"项目名-子项目名"的命名方式.
4.version:
版本号, grouId. artifactid,version 三个元素生成了一个Maven项目的基本坐标.

1.packing:
项目打包的类型,可以使jar. war rar pom ,默认是jar.
2.dependencies和dependency:
前者包含后者. Maven的一个重要作用就是同意管理jar包,为了一个项目可以build和运行.项目中不可避免的,会依赖很多其他的jar包,在Maven中,这些依赖就被称为dependency.

在这里,就有一个本地仓库远程仓库的概念,官方下载的本地仓库配置.在"%MAVEN_HOME%\conf\settings.xml"里面.
本地仓库和远程仓库是这样的,Maven工程首先会从本地仓库中获取jar包,当无法获取指定jar时,本地仓库会从远程仓库(中央仓库)中下载jar包,并放入本地仓库以备将来使用.

例子:项目中用到了MyBatis,那么可以配置成
1
2
3
4
5
6
7
<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.2.5</version>
    </dependency>
</dependencies>


3.build
build表示与构建相关的配置,比如build下有finalName,表示的就是最终构建之后的名称,

Maven的目录结构:
*main目录下是项目的主要代码,test目录下存放测试相关的代码.
*编译输出后的代码会放在target目录下.
*src/main/java下存放java代码,src/main/resources下存放配置文件.
*这里没有webapp,Web项目会有webapp目录,webapp下存放Web应用相关代码,
*pom.xml是Maven项目的配置文件.

二:maven常用命令
1.mvn compile        编译
2.mvn test        编译并测试
3.mvn clean        清空生成的文件
4.mvn site        生成项目相关信息的网站


三.Maven环境配置:
1.和JDK的环境变量配置类似

2.设置本地仓库地址和私服仓库地址,即setting

setting和本地仓库默认的地址是C:\Users\Administrator\m2

配置setting中内容:





(一般情况下,setting中的参数值可以向项目经理拿)

二.开发工具与maven的集成
1.idea与maven的集成:idea自身集成maven插件








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2