zoukankan      html  css  js  c++  java
  • maven(2)------maven构建项目

    一  下载maven

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

    如图:

    可以下载历史版本。


    二 windows下maven配置

    1. 解压下载后的包,解压后多出一个文件


    2. 配置环境变量

    “计算机”--》右键,选择--"属性"--》"高级系统设置"--》"高级"--》"环境变量"--》"新建"--》"确定"

    注意:

    变量名: MAVEN_HOME(名字任意,用大写)

    变量值: E:Javaapache-maven-3.0.5(maven所在目录,禁止使用中文目录)


    以上配置完后,还需要配置path路径,找到path,点击编辑,加上%MAVEN_HOME%in,如果不是处于结尾,需要加分号' ; '

    如果只是配置完MAVEN_HOME,忘记配置path了,如下图进入,需配置path,将%MAVEN_HOME%in配置。



    3. mvn -v 测试是否配置成功

    cmd命令窗口,输入mvn -v,如果出现如下效果,说明maven配置成功。

    如图:


    4. 将apache-maven-3.3.9conf下的settings.xml复制到C:UsersAdministrator.m2下,覆盖掉settings.xml

    注: maven默认情况下从C:UsersAdministrator.m2下的settings.xml文件寻找依赖,如果使用集成工具,

    比如eclipse,配置maven时,可以直接使用apache-maven-3.3.9conf下的settings.xml,就无需使用默认。

    maven下settings.xml位置:


    .m2下settings.xml位置,同时在该目录下建一个repository作为本地仓库文件,建完后是空的,稍后分析。


    三 maven构建项目

    以下实例为了更好的分析maven项目结构,未使用集成工具,比如eclipse等。

    1. maven项目结构

    2. 在windows工作空间新建如下Hello项目

    在Hello下,新建src和pom.xml同级:

    关于src下的main和test目录如下:

    在main的Java下,新建com/lanhuigu/maven,以及在test的java下,新建com/lanhuigu/maven文件级别目录

    3.  源码创建

    在Hellosrcmainjavacomlanhuigumaven下新建Hello.java文件,

    Hello.java内容如下:

    1. package com.lanhuigu.maven;  
    2.   
    3. public class Hello {  
    4.       
    5.     public String sayHello(String name) {  
    6.       
    7.         return name;  
    8.     }  
    9.       
    10. }  


    在Hellosrc estjavacomlanhuigumaven下新建HelloTest.java文件,

    HelloTest.java内容如下:

    1. package com.lanhuigu.maven;  
    2.   
    3. import org.junit.Test;  
    4.   
    5. public class HelloTest {  
    6.       
    7.     @Test  
    8.     public void testHello () {  
    9.         Hello hello = new Hello();  
    10.         String str = hello.sayHello("testMaven");  
    11.           
    12.         System.out.println(str);  
    13.     }  
    14.       
    15. }  

    4. pom.xml中内容如下:

    1. <project xmlns="http://maven.apache.org/POM/4.0.0"   
    2.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    3.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
    4.     <modelVersion>4.0.0</modelVersion>  
    5.     <groupId>com.lanhuigu.maven</groupId>  
    6.     <artifactId>Hello</artifactId>  
    7.     <version>0.0.1-SNAPSHOT</version>  
    8.     <name>Hello</name>  
    9.       
    10.     <dependencies>  
    11.         <dependency>  
    12.             <groupId>junit</groupId>  
    13.             <artifactId>junit</artifactId>  
    14.             <version>4.10</version>  
    15.         </dependency>  
    16.     </dependencies>  
    17.       
    18. </project>  


    以上在工作空间中创建了Hello项目,在Hello下新建了src,pom.xml文件,

    在src下建立main,test,分别在main和test下新建java,resources,然后

    分别建立文件路径,增加Hello.java和HelloTest.java源码,以及配置pom.xml文件,

    如此,Maven项目Hello建立完成。


    四 mvn命令使用

    1. 命令

    常用命令:

    mvn compile (编译)

    mvn test (运行测试代码)

    mvn clean (清除)

    mvn install (安装)

    mvn package (打包)

    组合命令:

    mvn clean test

    mvn clean install

    mvn clean package


    2. cd 到Hello项目



    3. 执行mvn compile命令,然后等待下载mvn相关jar包,以及pom.xml配置的依赖junit包

    一定要保证联网,并且网速别太次,否则下载失败。


    下载完成后如下效果:


    当mvn compile命令执行完成后,我们可以在Hello项目下看到多了一个target文件:

    target里面的内容,一个存放xxx.class字节码文件,一个是maven状态:

    这个时候我们再看看C:UsersAdministrator.m2下的repository文件中多了什么东西?

    如下,里面的东西都是mvn compile编译时从网上下载的相关依赖:

    我们可以看到,在mvn compile编译的时候,下载的依赖jar包等都在这个仓库中。

    既然mvn compile执行完了,再试试mvn test命令,效果如下:

    Hello项目下target包内容:


    我们也可以执行mvn package命令打包,注意观察Hello下的target目录文件的变化,

    java项目生成jar包,如果是web项目,生成war包。

    五 maven依赖分析

    以上我们完成了maven项目创建,可以通过命令编译,调用测试代码,打包等。

    我们还需要分析以下几个问题:

    1. 为什么默认情况下使用的是C:UsersAdministrator.m2下settings.xml文件,

    而不是E:javaapache-maven-3.3.9conf下的settings.xml文件,

    依赖jar包下到了C:UsersAdministrator.m2 epository中,而不是别的地方??

    在settings.xml文件中,打开,可以看到如下内容:


    如果不指定本地仓库位置,默认使用位置为${user.home}/.m2/repository,所以就是我们一直讨论的c盘下.m2文件下。

    如果我们不想把仓库放在.m2下,我们需要做这样的配置:



    2. pom.xml中的配置都是什么含义?


    3. 为什么在HelloTest.java中能够使用@Test测试代码,也就是怎么使用上junit包的?

    在HelloTest.java中,@Test引用的是import org.junit.Test;导入的是junit包,

    程序运行时,根据pom.xml中

    <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.10</version>
            </dependency>
    </dependencies>

    groupId+artifactId+version从.m2/repository仓库中找到junit-4.10.jar包。

  • 相关阅读:
    html(单纯html标签)
    python 知识点
    浅谈五大Python Web框架
    Python3的变化
    测试开发
    常见的测试用例设计方法
    数字数据类型及其对应转移字符
    char *p 与char p[]
    C语言运算符优先级 详细列表
    软件自动化测试
  • 原文地址:https://www.cnblogs.com/kabi/p/6382757.html
Copyright © 2011-2022 走看看