Maven学习

简介

maven对于Java相当于cocoaPods对于iOS。

官网:http://maven.apache.org/download.cgi

下载后的Maven: apache-maven-3.3.3-bin.zip

配置maven的环境变量:

Maven学习_第1张图片
图片.png

本地仓库

默认本地仓库在:
系统当前用户目录下.m2

Maven缺省的本地仓库路径为${user.home}/.m2/repository

本地仓库是远程仓库的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。如果你所需要的jar包版本在本地仓库没有,而且也不存在于远程仓库,Maven在构建的时候会报错,这种情况可能是有些jar包的新版本没有在Maven仓库中及时更新。

修改本地创库:

在D盘下新m2\repository文件夹

可以通过修改${user.home}/.m2/settings.xml配置本地仓库路径

修改Maven安装目录下的 conf/文件夹内的setting.xml文件,新增一行:

D:\m2\repository

表示本地仓库的地址为:D:\m2\repository)

将setting.xml复制一份到

D:\m2\repository目录下

修改Eclipse中的maven配置:

更新本地仓库:

最后打开CMD,执行
mvn help:system
会发现Maven从远程库下载的jar包都会放到新修改后的路径

IntelliJ IDEA转换普通java项目为maven项目

项目上右键 Add Framework Support,选择maven

pom.xml

Project Object Model,项目对象模型
通过xml格式保存的pom.xml文件。
作用类似ant的build.xml文件,功能更强大。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。
一个完整的pom.xml文件,放置在项目的根目录下。

  
  4.0.0  
  org.codehaus.mojo  
  my-project  
  1.0  
  war  
  
  1. groupId : 组织标识,例如:org.codehaus.mojo,在M2_REPO目录下,将是: org/codehaus/mojo目录。
  2. artifactId : 项目名称,例如:my-project,在M2_REPO目录下,将是:org/codehaus/mojo/my-project目录。
  3. version : 版本号,例如:1.0,在M2_REPO目录下,将是:org/codehaus/mojo/my-project/1.0目录。
  4. packaging : 打包的格式,可以为:pom , jar , maven-plugin , ejb , war , ear , rar , par

POM之间的关系
主要用于POM文件的复用。
a)依赖关系:依赖关系列表(dependency list)是POM的重要部分

      
         
         junit  
         junit  
         4.0  
         test  
         

b)继承关系:继承其他pom.xml配置的机制。

比如父pom.xml:

      
      [...]  
        
          
          junit  
          junit  
          4.4  
          test  
          
        
      [...]  
      

在子pom.xml文件继承它的依赖(还可以继承其他的:developers and contributors、plugin lists、reports lists、plugin executions with matching ids、plugin configuration):

    [...]  
      
    com.devzuz.mvnbook.proficio  
      proficio  
      1.0-SNAPSHOT  
      
    [...]  

在这种机制下,maven还提供了一个类似java.lang.Object的顶级父pom.xml文件:

可以通过下面命令查看当前pom.xml受到超pom.xml文件的影响:
mvn help:effective-pom

c)聚合关系:用于将多个maven项目聚合为一个大的项目。

      
      4.0.0  
      org.codehaus.mojo  
      my-parent  
      2.0  
        
        my-project  
        
      

Maven属性

maven的属性,是值的占位符,类似EL,类似ant的属性,比如${X},可用于pom文件任何赋值的位置。有以下分类:

1. env.X:操作系统环境变量,比如${env.PATH}
2. project.x:pom文件中的属性,比如:1.0,引用方式:${project.version}
3. settings.x:settings.xml文件中的属性,比如:false,引用方式:${settings.offline}
4. Java System Properties:java.lang.System.getProperties()中的属性,比如java.home,引用方式:${java.home}
5. 自定义:在pom文件中可以:c:/apps/cargo-installs,引用方式:${installDir}

Maven构建设置

构建有两种build标签:

  
    
    
      
        
        
      
    
 

build中的主要标签:Resources和Plugins。
Resources:用于排除或包含某些资源文件.

      
        
        META-INF/plexus  
        false  
        ${basedir}/src/main/plexus  
          
          configuration.xml  
          
          
          **/*.properties  
          
        
      

Plugins:设置构建的插件

  
       
       org.apache.maven.plugins  
       maven-jar-plugin  
       2.0  
       false  
       true  
         
         test  
         
         
         
       

---

maven 项目在pom.xml中添加jar包:

参考:http://jingyan.baidu.com/article/e75057f2dc8e90ebc91a8915.html

Maven是基于项目对象模型,提供程序构建能力、更是提供高级的项目管理工具
在开发中,我们能节约不少的磁盘开销能力,同步更新上传svn(只是一种)上的项目,也不用每次更新jar包,把jar包放在磁盘的某一处,项目中多次使用。


---

**maven 添加jar包**

1) 输入http://mvnrepository.com
![图片.png](http://upload-images.jianshu.io/upload_images/1197462-2ce1a052a583d529.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

2) 搜索jar包,比如:junit

![图片.png](http://upload-images.jianshu.io/upload_images/1197462-155cca670dccdb4f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

3) 一般选择使用人数最多,点击进去

4)使用人数和最新有一个权衡,选一个

![图片.png](http://upload-images.jianshu.io/upload_images/1197462-815fa75ac35a140e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

5) 复制这个dependency



junit
junit
4.12

6) 粘贴到`pom.xml`中去

**Maven 太慢**
Uploading Maven Repositorty Indices...太慢

我们需要换下源:
参考:
maven:
http://www.cnblogs.com/origalom/p/5987931.html  (这个是aliyun的源)


1) 替换settings.xml的镜像


  alimaven
  aliyun maven
  http://maven.aliyun.com/nexus/content/groups/public/
  central

2)如果还不行,就clean 下

    mvn clean, mvn install



你可能感兴趣的:(Maven学习)