Maven快速入门--Idea版

目录

  • 1.web项目的基本知识

    • 1.1 项目构建

      • 1.1.1传统的构建过程如下:
      • 1.1.2 mavn构建项目
    • 1.2 maven构建项目的优点:
  • 2. 依赖管理
    • 2.1 传统依赖管理

      • 2.1.1 手工拷贝jar到工程存在的问题:
    • 2.2 maven项目依赖管理
      • 2.2.1 maven依赖管理的好处:
    • 2.2 使用maven的好处
    • 2.2.1 其他项目构建方式
  • 3. Maven的下载和安装
    • 3.1 环境变量的配置
  • 4.Maven仓库repository
    • 4.1 maven仓库的作用

      • 4.1.1 本地仓库 :
      • 4.1.2 远程仓库
      • 4.1.3 中央仓库
  • 5. Maven工程
    • 5.1 maven工程目录结构(重点)
    • 5.2 Maven命令
      • 5.2.1 Maven给WEB项目打war包
  • 6.在idea中使用maven
    • 6.1 配置maven仓库
    • 6.2 创建maven项目
    • 6.3 父子工程
    • 6.4 依赖作用域(scope)
  • 7.解决jdk1.5的问题
    • 7.1通过更改Maven的 配置文件解决问题
    • 7.2 通过更改maven项目中的pom.xml解决
  • 8.Properties标签
  • 9. 补充

1.web项目的基本知识

1.1 项目构建

项目构建是一个项目从编写源代码到编译、测试、打包、部署、运行的过程

1.1.1传统的构建过程如下:

? 1)在IDE 中创建一个java web工程

? 2)在工程中编写源代码及配置文件等(配置环境 导包)

? 3)对源代码进行编译,java文件编译成class文件

? 4)执行Junit单元测试

? 5)将工程打成war包部署至tomcat运行

Mk

1.1.2 mavn构建项目

? maven将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段,后面章节详细介绍每个阶段,这里先大概了解下:

清理阶段对应maven的命令是clean,清理输出的class文件

编译阶段对应maven的命令是compile,将java代码编译成class文件。

打包阶段对应maven的命令是package,java工程可以打成jar包,web包可以打成war包

1.2 maven构建项目的优点:

1、一个命令完成构建、运行,方便快捷。

2、maven对每个构建阶段进行规范,非常有利于大型团队协作开发。

2. 依赖管理

一个java项目可能要使用一些第三方的jar包才可以运行,那么我们说这个java项目依赖了这些第三方的jar包。依赖管理就是对项目所有依赖的jar包进行规范化管理。

(自己理解:就是管理要导入的jar包)

2.1 传统依赖管理

? 传统的项目工程要管理所依赖的包完全靠人工进行,程序员从网上下载包添加到项目工程中,就是原本我们那jar包导入WEB-INF/lib目录的操作。

2.1.1 手工拷贝jar到工程存在的问题:

  1. 没有对jar包的版本统一管理,容易导致版本冲突(版本需一致)。
  2. 从网上找jar包非常不方便,有些jar找不到。
  3. jar包添加到工程中导致工程过大。

2.2 maven项目依赖管理

maven项目通过往pom.xml(maven工程的配置文件)添加jar包的坐标,来自动从maven仓库中下载jar包,运行。

2.2.1 maven依赖管理的好处:

  1. 通过pom.xml文件对jar包的版本进行统一管理,可==避免版本冲突==。
  2. maven团队维护了一个非常全的maven仓库,里边包括了当前使用的jar包,maven工程可以自动从maven仓库下载jar包,非常方便。

2.2 使用maven的好处

  1. 一步构建

    ? maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程。

  2. 依赖管理

    ? maven工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错。

  3. maven的跨平台,可在window、linux上使用。
  4. maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用maven来构建项目。

2.2.1 其他项目构建方式

Mk Linux

Gradle——intelj IDE Android

3. Maven的下载和安装

  1. 下载

    从该网站 http://maven.apache.org/download.cgi 下载

解压

  1. 将maven解压到一个不含有中文和空格的目录中。
  2. 目录简介
    1. bin目录 mvn.bat (以run方式运行项目)、 mvnDebug.bat(以debug方式运行项目 )
    2. boot目录 maven运行需要类加载器
    3. conf目录 settings.xml 整个maven工具核心配置文件
    4. lib目录 maven运行依赖jar包

3.1 环境变量的配置

新增配置 MAVEN_HOME (就是maven的解压目录)

在dos窗口通过
==mvn -v命令==检查maven是否安装成功,看到maven的版本及java版本即为安装成功

4.Maven仓库repository

4.1 maven仓库的作用

maven的工作需要从仓库下载一些jar包,如下图所示,本地的项目A、项目B等都会通过maven软件从远程仓库(可以理解为互联网上的仓库)下载jar包并存在本地仓库,本地仓库 就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,==可以将本地仓库理解为缓存==,有了本地仓库就不用每次从远程仓库下载了。

4.1.1 本地仓库 :

用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找

默认本地仓库位置在 ${user.dir}/.m2/repository,${user.dir}表示windows用户目录。

4.1.1.1 配置本地仓库

将 “repository.rar”解压至自己的电脑上,

在MAVE_HOME/conf/settings.xml文件中配置本地仓库位置:

repository的本地地址

4.1.2 远程仓库

如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库(一般使用阿里的国内镜像)下载。

远程仓库可以在互联网内也可以在局域网内(例如一些保密单位不允许使用外网)。

4.1.2.1 配置远程仓库

maven仓库默认在国外,使用很慢,国内支持maven镜像的有阿里巴巴,开源中国(基本不用)等。

==注意:要在mirrors标签里配置mirror标签==

阿里巴巴远程仓库
<mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

4.1.3 中央仓库

在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

配置中央仓库(基本不用):

<!-- 中央仓库在中国的镜像 -->
        <mirror>
            <id>maven.net.cn</id>
            <name>oneof the central mirrors in china</name>
            <url>http://maven.net.cn/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>

5. Maven工程

5.1 maven工程目录结构(重点)

Project(必须掌握)

--src

? --main 开发部署的代码配置文件等文件

? --java 放的是代码

? --resources 配置文件及资源文件

? --webapp web项目的根目录

? --test 单元测试相关的文件

--java 放的是测试代码

? --resources 测试配置文件及资源文件(可以不要,可以使用main下的配置文件)

--pom.xml maven的配置文件

--target 文件夹,项目构建相关流程产生的文件,都放在这个目录下

5.2 Maven命令

  • mvn compile:完成编译操作

    默认编译src/main/java,同时会把src/resources下的资源放在编译的输出目录target/classes,存放了编译后的字节码文件。

  • mvn clean :会将target目录删除。
  • mvn test:完成单元测试操作
    • 执行src\test\java所有包含@Test注解的方法
    • 如果单元测试执行失败不会执行后续的操作
    • 执行完毕后,会在target目录中生成两个个文件夹: surefire-reports(测试报告)、test-classes(测试的字节码文件,包括test/resources的资源文件)
  • mvn package:完成打包操作
    • 在打包之前会执行mvn test,执行完毕后,会在target目录中生成一个文件,该文件可能是jar、war默认是jar包(文件名artifactId+version+打包类型)
  • mvn install:将我们的项目安装到==本地仓库==

5.2.1 Maven给WEB项目打war包

在pom.xml中配置

<packaging>war</packaging>

6.在idea中使用maven

不需要安装maven插件,idea自带有

6.1 配置maven仓库

6.2 创建maven项目

不要使用模板

6.3 父子工程

创建子工程的时候,在这里选择父工程,父工程的创建和普通工程创建的方式一样

创建好父子工程后:

  • 在子工程的pom.xml中多了parent节点
  • 父工程中有新增module节点

作用和使用场景:

不希望在父工程里编码。具体的代码应该拆分到子工程。==父工程的主要职责是把不同的子工程聚合起来,合为一个工程==。

父工程里集中配置多个子模块里通用的jar包。

在父工程的pom.xml中抽取一些重复的配置的,比如:锁定jar包的版本、设置编译版本等。父工程定义的jar包子工程可以引用。

在父工程中导入依赖,子工程都可以使用

6.4 依赖作用域(scope)

  • Compile:编译的时候需要并且要打包到应用(lib文件夹)(通常默认的是compile)
  • Provided:编译的时候需要 打包的时候不需要(通常只有servlet是provided)
  • Test:测试;scope为test的依赖只能由Tests目录下的代码使用,sources目录下代码不能使用(通常只有junit4和spring-test这两个依赖scope为test)
  • Runtime:运行,编译的时候不需要,运行的时候需要(通常只有mysql-connector-java的scope为runtime)

7.解决jdk1.5的问题

7.1通过更改Maven的 配置文件解决问题

在该目下下找到指定文件:Maven_home/conf/setting.xml ,在里面新增节点

<profile>
        <id>jdk-1.8</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>1.8</jdk>
        </activation>
        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
        </properties>
</profile>

7.2 通过更改maven项目中的pom.xml解决

在配置pom.xml文件里的properties标签

<properties>
    <!--key是我们的自定义标签-->
    <!--spring.version=5.1.0.RELEASE-->
    <spring.version>5.1.0.RELEASE</spring.version>
    <mysql.version>5.1.14</mysql.version>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>

</properties>

8.Properties标签

同属于project的子标签

9. 补充

几个需要注意的点:

  1. 自动导入问题:idea建议不要设置自动导入,因为有的时候版本号还没写全,idea就已经开始打入,如果没有这个版本,就会出现问题
  2. 依赖问题:在project structure中检查dependencies中的依赖是否报红,根据路径去查找,看jar包置否存在。
  3. 当你引入一个其他人的maven工程的时候,首先要检查maven配置是否是自己的

原文地址:https://www.cnblogs.com/zhaoyuan72/p/11572046.html

时间: 2024-08-01 13:58:26

Maven快速入门--Idea版的相关文章

Maven 快速入门及简单使用

开发环境 MyEclipse 8.5 JDK 1.6 Maven 3.2.1 1.什么是Maven? Maven是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理. 2.下载及安装 下载最新版 Maven:apache-maven-3.2.1-bin.tar.gz.下载地址:http://pan.baidu.com/s/1eQDwk8M. 解压文件: 配置环境变量(需要先配置好%JAVA_HOME%环境变量): 查看是否配置成功,在控制台中输入:mvn -v 修改%MAVEN_HOME

Maven 系列 一 :Maven 快速入门及简单使用【转】

开发环境 MyEclipse 2014 JDK 1.8 Maven 3.2.1 1.什么是Maven? Maven是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理. 2.下载及安装 下载最新版 Maven:apache-maven-3.2.1-bin.zip.官网下载:http://maven.apache.org/download.cgi. 解压文件: 配置环境变量(需要先配置好%JAVA_HOME%环境变量): 查看是否配置成功: 其他配置:settings.xml(后面讲到)

Maven 系列 一 : Maven 快速入门及简单使用

开发环境 MyEclipse 2014 JDK 1.8 Maven 3.2.1 1.什么是Maven? Maven是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理. 2.下载及安装 下载最新版 Maven:apache-maven-3.2.1-bin.zip.官网下载:http://maven.apache.org/download.cgi. 解压文件: 配置环境变量(需要先配置好%JAVA_HOME%环境变量): 查看是否配置成功: 其他配置:settings.xml(后面讲到)

Maven入门指南 :Maven 快速入门及简单使用

Maven入门指南 :Maven 快速入门及简单使用 前言 Maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目.主要用于项目构建,依赖管理,项目信息管理. maven项目在编译.测试.打包里,会需要从maven的中央仓库(即:maven组织公布在互联网上的一个站点,里面已经收录了目前绝大多数主流的jar包)下载jar包等文件, 如果使用代理服务器上网,需要配置代理服务器. 理解"仓库" 首次运行完mvn -version后,会在用户目录下创建一个.m

Maven入门指南 Maven 快速入门及简单使用

Maven入门指南 :Maven 快速入门及简单使用 前言 Maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目.主要用于项目构建,依赖管理,项目信息管理. maven项目在编译.测试.打包里,会需要从maven的中央仓库(即:maven组织公布在互联网上的一个站点,里面已经收录了目前绝大多数主流的jar包)下载jar包等文件, 如果使用代理服务器上网,需要配置代理服务器. 理解"仓库" 首次运行完mvn -version后,会在用户目录下创建一个.m

Maven快速入门使用

1. Maven 介绍 1.1 为什么使用 Maven 由于 Java 的生态非常丰富,无论你想实现什么功能,都能找到对应的工具类,这些工具类都是以 jar 包的形式出现的,例如 Spring,SpringMVC.MyBatis.数据库驱动,等等,都是以 jar 包的形式出现的,jar 包之间会有关联,在使用一个依赖之前,还需要确定这个依赖所依赖的其他依赖,所以,当项目比较大的时候,依赖管理会变得非常麻烦臃肿,这是 Maven 解决的第一个问题. Maven 还可以处理多模块项目.简单的项目,单

Maven快速入门

更多内容请参考官方文档:http://maven.apache.org/guides/index.html 官方文档很详细,基本上可以查找到一切相关的内容. (一)搭建环境 1.下载maven,并将之解压 或者直接使用yum 来安装 2.配置环境变量 export PATH=/home/jediael/setupfile/apache-maven-3.1.1/bin:$PATH 3.验证环境 [[email protected] maven_demo]$ mvn -v Apache Maven

MPLS VPN 快速入门(张洋讲解版)

MPLS VPN 快速入门(张洋讲解版) 课程目标: 本课程所描述MPLS VPN从零开始学习的内容,为后面MPLS VPN设计和规划的高级教程打下坚实的基础,本课核心目标是:一.从真正意义上去理解MPLS的工作原理:二.学习MPLS VPN架构的基本组件,包括VRF.VPN.RD.RT.BGP标签.MP-BGP:三.融合几大组件从而真正意义的学习基本的MPLS VPN的基本架构. 课程位置:http://edu.51cto.com/course/course_id-5556.html 第一课:

Maven 教程入门(整理版)

今天又开始看了Maven,感觉一下几个网友 写的真是棒棒哒!!!记录一下. ======================================================================== maven 教程入门 maven 配置管理 编译java程序 Maven学习总结(一)--Maven入门 Maven那点事儿(Eclipse版)