关于java:MAVEN

一、Maven的概述
1、什么是Maven?

Maven是apache下的一个纯Java开发的开源我的项目
Maven是一个项目管理工具,能够简化我的项目配置,对立我的项目构造,使得开发者的工作变得更简略!
应用Maven的次要起因,是Maven能够帮咱们下载和治理我的项目中所须要的依赖(jar包)

二、Maven的下载/装置/配置
1、下载、装置Maven

官网下载地址:http://maven.apache.org/download.cgi
maven是一个绿色软件,解压之后就能够应用。
装置时举荐,装置的门路中不要蕴含中文和空格

2、配置本地仓库

2.1.什么是本地仓库
    本地仓库就是本地硬盘上的一个目录,这个目录用于寄存Maven帮咱们下载的所有jar包和插件。
    如果不指定,本地仓库默认是在(windows零碎):c:/users/{以后用户}/.m2/repository

2.2.批改本地仓库的默认地位
    找到 {maven的装置目录}/conf/settings.xml文件,在settings文件的55行,增加如下内容:
    <localRepository>d:/javaDevelop/localRepo</localRepository>
    批改完后,当前通过maven下载的所有jar包和插件都会寄存在这个地位:
        d:/javaDevelop/localRepo

3、配置近程仓库

3.1.什么是近程仓库
    如果没有配置近程仓库,默认连贯地方仓库,也就是maven将会从地方仓库下载jar,再保留到本地仓库中。
    但因为地方仓库面向的是寰球用户,所以下载jar包速度较慢!
    近程仓库(镜像仓库、私服): 个别是由公司(或集体)负责搭建并保护,如果配置了近程仓库,maven就会从近程仓库下载所须要的jar包,并保留到本地仓库中。
    
3.2.如何配置近程仓库
    (1)如果是有网络:能够不配置,默认连贯地方仓库,也能够配置连贯阿里云的仓库,或者连贯你们公司本人的近程仓库。
        留神:如果连贯阿里云仓库,不能够应用手机热点网络!
    
    配置办法:找到{maven的装置目录}/conf/settings.xml文件,在settings文件的<mirrors>标签外部,通过增加<mirror>标签,能够配置近程仓库。
    
    阿里云的近程仓库配置:
    <mirror>
        <id>nexus-aliyun</id>
        <name>Nexus aliyun</name>
        <mirrorOf>central</mirrorOf>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

4、配置JDK版本

因为在maven和eclipse整合后,通过eclipse创立的maven我的项目,其中的JDK版本默认是JDK1.5(太旧)
能够在{maven的装置目录}/conf/settings.xml文件中配置JDK的版本,配置后,当前再创立maven我的项目,我的项目中的JDK版本就是咱们指定的版本。而不是JDK1.5。
配置办法是:在{maven的装置目录}/conf/settings.xml文件的<profiles>标签外部,增加一个<profile>标签。如下:
<profile>
    <id>development</id>
    <activation>
        <jdk>1.8</jdk>
        <activeByDefault>true</activeByDefault>
    </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>

5、整合Maven和Eclipse

如果曾经将Maven和Eclipse进行了整合,再批改settings.xml文件,如果想让批改的配置立刻失效,能够重启Eclipse。

三、Maven的我的项目构建
0、通过Maven构建Java我的项目分为两种形式:

形式一:通过Maven创立简略工程/我的项目(new simple project)
    (1)通过Maven创立简略的Java工程
    (2)通过Maven创立简略的Web工程
形式二:通过Maven创立模板工程/我的项目
    (1)通过模板创立Java工程
    (2)通过模板创立Web工程

1、通过Maven创立一个Java我的项目:CGB-MAVEN-JAVA01

2、通过Maven创立一个Web我的项目:CGB-MAVEN-WEB01

留神:通过maven创立的Web我的项目默认短少 WEB-INF目录,也短少web.xml文件,解决办法是:
在[Package Explorer]视图窗口中,在Web我的项目上-->右键-->抉择:JavaEE Tools-->抉择:Generate Deployment...,webapp目录下就会生成WEB-INF目录和web.xml文件

3、Maven我的项目的目录构造

CGB-MAVEN-WEB01(maven我的项目的名字)
    |-- src/main/java(源码目录) -- 用于寄存主程序/我的项目的java源文件
    |-- src/main/resources(源码目录) -- 用于寄存主程序所须要的配置文件(.xml/.propertes/.yml等)
    |-- src/test/java(源码目录) -- 用于寄存测试的java源文件
    |-- src/test/resources(源码目录) -- 用于寄存测试的配置文件
    |-- src/main/webapp -- Web利用的根目录,相当于WebContent目录
            未来能够寄存Web资源文件(html/css/js/jsp/图片等)
    |-- src/main/webapp/WEB-INF/web.xml -- Web利用的外围配置文件
    |-- target/classes/ -- 源码目录中的资源文件通过编译后,会输入到classes目录下
    |-- pom.xml -- maven我的项目的配置文件,如果须要引入jar包、插件,能够在这个文件中进行引入

4、如何导入已有的Maven我的项目

1) 导入数据库(yonghedb)、表、表记录
2) 导入yonghe我的项目
留神:在导入我的项目后,我的项目上有叉号(x)或者有叹号(!),都是因为maven没有将所有的环境/依赖下载下来。
能够通过如下两个步骤去解决:
1)关上yonghe我的项目,找到其中的pom.xml文件,在文件中敲一个空白行并保留,让maven从新扫描pom文件,并依据其中的配置下载所须要的依赖;
2)在报错的maven我的项目上右键--> Maven--> Update Project...,在弹出的窗口中勾选下方的
    []Force Update...
    即勾选强制更新,如果还没有解决,再看第3步!

四、maven的依赖治理
1、如何在Maven我的项目中引入jar包(依赖)

不须要将jar包复制到以后我的项目中,而是在pom.xml文件中增加这个jar包对应的坐标,比方,要增加mysql驱动包,只须要在pom文件的根标签(project)外部,增加一个<dependencies>标签,在<dependencies>标签外部增加一个mysql驱动包的坐标即可,如下所示:
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.32</version>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
</dependency>

2、引入到Maven我的项目中的jar包,寄存在哪个地位?

引入到Maven我的项目中的jar包,寄存在本地仓库的指定地位下,这个地位就是【本地仓库地位+以后依赖的坐标】
(后面说过,本地仓库就是本地硬盘上的某一个目录,就是用来寄存maven帮咱们下载的所有jar包和插件)

3、本地仓库中的jar包是从哪儿来的?

如果没有配置近程仓库,本地仓库中的jar包是maven帮咱们从地方仓库下载下来的。
如果配置了阿里云的近程仓库,本地仓库中的jar包是maven帮咱们从阿里云仓库下载下来的
1)本地仓库:其实就是本地硬盘上的某一个目录,用于寄存maven帮咱们下载的所有jar包和插件
    当咱们在我的项目中引入了依赖,就会到本地仓库中依据坐标寻找这个依赖(jar包)
    如果本地仓库中有,则间接引入到我的项目中应用;
    如果本地仓库中没有,则连贯近程仓库(如果配置了),或者连贯地方仓库。
2)近程仓库:也叫作镜像仓库或者私服,由公司或集体负责搭建,如果在maven中配置了近程仓库,当本地仓库中没有某一个jar包时,就会连贯近程仓库进行下载。近程仓库若没有,则连贯地方仓库去下载。
3)地方仓库:由maven团队负责搭建并保护,其中包含了全世界简直所有的jar包,面向的用户是寰球用户,因而在连贯地方仓库时,速度会比较慢。

4、如何在pom文件中增加依赖?
4.1.增加依赖的形式一:

如果增加的依赖包在本地仓库中有(比方之前在别的我的项目中引入过这个依赖包)
增加办法: 关上pom文件,在pom文件中右键--> Maven --> Add dependency,在弹出的窗口中输出要增加的依赖包。
如果本地仓库中没有这个jar包,必然会搜寻不到!
如果本地仓库中有这个jar包也搜寻不到,解决办法是:关上 Maven Repositories 窗口, 找到 Local Repository,在下面右键 ReBuild Index(即重建索引), 重建索引后再去搜寻。

4.1.增加依赖的形式二:

如果增加的依赖包在本地仓库中没有,能够在互联网上进行搜寻依赖的坐标,并把坐标复制到pom文件中
http://mvnrepository.com
http://maven.ityuan.com

五、maven的常见问题
1、Maven的本地库反对复制

如果因为网络问题导致无奈通过maven下载所须要的依赖,能够将别的电脑上、曾经下载好的本地库,复制到咱们的本地库中。

2、如果通过Maven创立的工程目录构造不残缺,或者前期在引入Jar包时,jar引入失败,能够参考如下办法进行解决:

1)确保以后网络环境是否能连贯上所配置的近程仓库,接着进行第2步。(若不在达内教室,是无奈连贯达内的近程仓库;又或者应用手机热点网络将无奈连贯阿里云的近程仓库等)
2)在我的项目的pom文件中敲一个空白行,再保留文件。(目标是让maven检测到pom文件产生了变动,再依据pom文件中的配置,到本地仓库中寻找对应的jar包,如果没有相应的jar包,maven会从新下载)
3)接着在我的项目上,右键---> Maven ---> Update Project...,在弹出的窗口中勾选下方的 "[]Force Update...",即强制更新我的项目,此时maven也会查看pom文件,下载没有引入的相干依赖。
4)如果以上操作还是不行,到本地仓库的目录下,将本地仓库中所有的目录都删除,删除时,因为eclipse正在应用本地仓库中的资源文件,所以会阻止删除,此时将eclipse敞开,再将本地仓库中的所有目录删除,重启eclipse。
5)启动eclipse后,再将下面的第(2)步和第(3)步再做一遍!

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据