zoukankan      html  css  js  c++  java
  • Maven

    maven具体是什么:

    Maven是跨平台的项目管理工具, 主要服务于Java平台的项目构建、依赖管理和项目信息管理。

    项目构建完整的过程:

     

    使用maven后只需要一步即可完成上述构建过程。

    好处2,依赖管理:

    正常的项目我们处理jar包很少会去关心具体的版本号,有时当前用到了某个功能去找jar包一般都是用最新的,这样当前可能没问题,实际上这给我们的项目带来了极大的安全隐患和风险,而使用maven后,这些jar包之间的依赖关系就能够清晰的看到了,为什么要用这些jar包,它能自动管理各个jar包之间版本的依赖关系。

    好处3,构件化编程:

    每个项目的代码的重用率高,将原来的大工程分成很多个小工程,通过maven去构件组装,用到什么功能随时插拔使用,提高开发成本。

    在maven的角度来看,简单的来讲每个jar包就相当于一个构件化的组件。

    maven安装过程:

    1.检查jdk安装的情况(要1.6以上版本):

    Echo %JAVA_HOME%   注:验证是否设置java环境变量

    Java -version     注:验证java版本

    2.对apache-maven-3.0.3-bin.zip进行解压缩,例如解压到如下目录(解压目录最好不要有中文字):

     

    3.设置系统环境变量,MAVEN_HOME

     

    4.设置环境变量Path,将%MAVEN_HOME%in加入Path中,一定要注意要用分号;与其他值隔开

     

    5.验证安装是否成功,打开cmd窗口,敲入mvn  –v 查看

     

     一般配置完上述步骤即可运行maven了,但是部分人可能会出现内存溢出的一个错误,原因已不需解释,肯定是内存不够了呗,这时我们需要设置一下maven使用的内存,

    设置MAVEN_OPTS环境变量:-Xms128m -Xmx512m

    注意:上面设置的具体是什么意思呢,是maven在java虚拟机中占用堆的大小,-Xms是设置堆初始的大小,-Xmx是设置堆的最大值。

    有兴趣的朋友可以参考这个网址去学习一下:http://unixboy.iteye.com/blog/174173/

     针对不同用户的配置方式:

    直接复制一份E:apache-maven-3.2.5confsettings.xml这个文件到对应的用户(例如:administrator,对应目录是:C:UsersAdministrator.m2)下即可,这样就表示这个用户的maven配置信息就走这个文件了。

    注意:E:apache-maven-3.2.5confsettings.xml默认是全局用户的配置信息。

    Maven的约定:

    我们在使用maven的时候一定要遵循maven的这个约定,因为凭什么说这个项目是maven项目呢就是因为有一个这样的约定,所以只要按照这个约定做的项目,那它就是个maven项目,正如web项目一样,是约定俗成的东西。

    src/main/java 存放项目的.java文件
    src/main/resources 存放项目资源文件,如spring,hibernate配置文件
    src/test/java 存放所有测试.java文件,如JUnit测试类
    src/test/resources 测试资源文件
    target 项目输出位置
    pom.xml 必须的maven特色文件

    动手实践第一个maven项目:

    第1步. 首先建立Hello项目同时建立Maven约定的目录结构

    Hello
    --src
    -----main
    ----------java
    ----------resources
    -----test
    ---------java
    ---------resources
    --pom.xml

    第2步:在项目Hello根目录建立pom.xml

    <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>cn.cfs.maven</groupId>
      <artifactId>Hello</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>Hello</name>
      
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.9</version>
                <scope>test</scope>
            </dependency>        
            
        </dependencies>
    </project>
    pom.xml

    第3步:在src/main/java/cn/cfs/maven目录下新建文件Hello.java

    package cn.cfs.maven;
    
    public class Hello {
        
        public String sayHello(String name){
        
            return "Hello "+name+"!";
        
        }
        
    }
    Hello(java实现)

    第4步:在/src/test/java/cn/cfs/maven目录下新建测试文件HelloTest.java

    package cn.cfs.maven;
    
    import org.junit.Test;
    import static junit.framework.Assert.*;
    
    public class HelloTest {
    
        @Test
        public void testHello(){
            
            Hello hello = new Hello();
            String results = hello.sayHello("litingwei");
            assertEquals("Hello litingwei!",results);        
    
        }
        
    }
    HelloTest

    第5步:

    a)打开cmd命令行,进入Hello项目根目录执行 mvn compile命令,查看根目录变化
    b)cmd 中继续录入mvn clean命令,然后再次查看根目录变化
    c)cmd 中录入 mvn clean compile命令, 查看根目录变化
    d)cmd 中录入 mvn clean test命令,查看根目录变化
    e)cmd 中录入 mvn clean package命令,查看根目录变化
    f )cmd 中录入 mvn install命令,查看根目录变化

     动手实践第二个maven项目:

    第1步:复制一份hello项目更名为hellofriend,要求约定的结构和hello一样,里面的类文件可以删除

    第2步:在src/main/java/cn/cfs/maven目录下新建文件HelloFriend.java

    package cn.cfs.maven;
    
    public class HelloFriend {
        public String sayHelloFriend(String name) {
            Hello h=new Hello();
            String str=h.sayHello(name)+"引用helloFriend的方法";
            return str;
        }
    }
    HelloFriend

    第3步:在项目Hello根目录建立pom.xml

    <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>cfs.maven</groupId>
      <artifactId>HelloFriend</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>HelloFriend</name>
      
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.9</version>
                <scope>test</scope>
            </dependency>        
            
            <dependency>
                <groupId>cfs.maven</groupId>
                <artifactId>Hello</artifactId>
                <version>0.0.1-SNAPSHOT</version>
                <scope>compile</scope>
            </dependency>        
        </dependencies>
    </project>
    注意观察这个pom.xml文件和第一个的不同

    第4步:观察一下你的maven仓库是否生成了对应的jar文件

    可以看到项目与项目之间的引用主要是通过maven的依赖管理去实现的,那么maven的概念模型是什么样的呢?

    Maven概念模型:

    可以通过上面的图片可以清晰的看出来maven是通过插件去实现每一步的操作,那么他的插件放到哪里了呢?

    插件路径:C:UsersAdministrator.m2 epositoryorgapachemavenplugins

    放一张图片对比一下,我们敲的命令既是这些插件的名称,通过命令找到这些插件项目,本质上也是java些的程序。

     Maven的坐标讲解:

    我们的仓库一般都很大,里面有很多的jar包,maven为更快更有效的去定位实际项目中用到的jar,通过4个维度去快速锁定jar包。

    groupId:定义当前Maven项目隶属项目,如果是单独的项目一般填写的是主包名
    artifactId:定义实际项目中的一个模块,如果是单独项目则是项目名或主类名
    version>:定义当前项目的当前版本,顾名思义不用多解释了
    packaging:定义该项目的打包方式,2种,不写该坐标默认是jar,通常web项目选择war包

    上面的四种坐标标签是必须的。

    dependencies:配置依赖的标签,所有的依赖标签都在这里配置。

    dependency:配置具体依赖的标签,只能出现在dependencies标签里。

    scope:范围,具体配置项请看下面的图片:

  • 相关阅读:
    guid与Base64编码互相转换
    xml序列化与反序列化工具
    Win10 15063 开始运行不保存历史记录原因和解决方法
    win10 localhost 解析为 ipv6地址 ::1 的解决办法
    在VisualStudio中应该使用什么字体
    S7-200系列PLC与WINCC以太网通信CP243i的实例
    超棒的 15 款 Bootstrap UI 编辑器
    NuGet学习笔记(转)
    SQLServer公历转农历函数(1900年-2049年)
    WPF 的datagrid 列名中没有显示下划线是怎么回事?
  • 原文地址:https://www.cnblogs.com/mycifeng/p/7217940.html
Copyright © 2011-2022 走看看