• Maven安装与配置


    一. 什么是maven

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

    1. 高度自己主动化的项目构建

    2. 自己主动下载jar包, 统一依赖管理

    3. 管理项目名称, 开发者信息等


    二. 为什么使用maven

    1. 使用IDE的缺点:

    a.) 手工操作较多, 编译、測试、部署等工作都是独立的, 非常难一步完毕

    b.) 每一个人的IDE配置都不同, 非常easy出现本地代码换个地方编译就出错等问题.


    2. 使用ant的缺点:

    a.) 没有一个约定的文件夹结构

    b.) 必须明白让ant做什么, 什么时候做, 然后编译、打包

    c.) 没有生命周期, 必须定义妙及事实上现的任务序列

    d.) 没有集成依赖管理


    3. 使用maven的优点:

    a.) 拥有约定的文件夹结构, 知道你的代码在哪里, 放到哪里去
    b.) 拥有一个生命周期, 比如运行mvn install 就能够自己主动运行编译測试打包等构建过程
    c.) 仅仅须要定义一个pom.xml, 然后把源代码放到默认的文件夹, maven会帮你处理其它事情
    d.) 拥有依赖管理,仓库管理



    三. maven的安装

    1. 检查jdk安装的情况(要1.6版本号)
       echo %JAVA_HOME%
       Java -version
    2. 对apache-maven-3.0.3-bin.zip进行解压缩, 比如解压到例如以下文件夹(解压文件夹最好不要有中文字)



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



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



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



    6. Maven安装文件夹分析

    a.) bin:含有mvn执行的脚本
    b.) boot:含有plexus-classworlds类载入器框架
    c.) conf:含有settings.xml配置文件
    d.) lib:含有Maven执行时所须要的java类库
    e.) LICENSE.txt, NOTICE.txt, README.txt针对Maven版本号,第三方软件等简要介绍


    四. 第一个maven项目

    1. 首先建立Hello项目同一时候建立Maven约定的文件夹结构
    Hello
     |------src
              |------main
                       |------java  (存放项目的Java文件)
                       |------resources  (存放项目的资源文件, 如: spring, hibernate配置文件)
              |------test
                       |------java  (存放全部測试的Java文件, 如: JUnit測试类)
                       |------resources  (存放測试的资源文件)

     |------target  (项目编译后文件)
     |------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>com.zdp.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>

    3. 在src/main/java/com/zdp/maven文件夹下新建文件Hello.java

    package com.zdp.maven;
    public class Hello {
    	public String sayHello(String name){
    		return "Hello "+name+"!";
    	}
    }

    4. 在/src/test/java/com/zdp/maven文件夹下新建測试文件HelloTest.java

    package com.zdp.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);		
    	}
    }
    

    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命令, 查看根文件夹变化


    五. 第二个maven项目

    1. 首先建立HelloFriend项目同一时候建立Maven约定的文件夹结构

    HelloFriend

     |------src
              |------main
                       |------java  (存放项目的Java文件)
                       |------resources  (存放项目的资源文件, 如: spring, hibernate配置文件)
              |------test
                       |------java  (存放全部測试的Java文件, 如: JUnit測试类)
                       |------resources  (存放測试的资源文件)

     |------target  (项目编译后文件)
     |------pom.xml


    2. 在项目HelloFriend根文件夹建立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>com.zdp.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>com.zdp.maven</groupId>
    			<artifactId>Hello</artifactId>
    			<version>0.0.1-SNAPSHOT</version>
    			<scope>compile</scope>
    		</dependency>		
    	</dependencies>
    </project>


    3. 在src/main/java/com/zdp/maven文件夹下新建文件HelloFriend.java

    package com.zdp.maven;
    import com.zdp.maven.Hello;
    public class HelloFriend {
    	public String sayHelloToFriend(String name){
    		Hello hello = new Hello();
    		String str = hello.sayHello(name)+" I am "+this.getMyName();
    		System.out.println(str);
    		return str;
    	}
    	public String getMyName(){
    		return "John";
    	}
    }

    4. 在/src/test/java/com/zdp/maven文件夹下新建測试文件HelloFriendTest.java
    package com.zdp.maven;
    import static junit.framework.Assert.assertEquals;
    import org.junit.Test;
    import com.zdp.maven.Hello;
    public class HelloFriendTest {
    	@Test
    	public void tesHelloFriend(){
    		HelloFriend helloFriend = new HelloFriend();
    		String results = helloFriend.sayHelloToFriend("litingwei");
    		assertEquals("Hello litingwei! I am John",results);		
    	}
    }

    5. 在HelloFriend文件夹下运行命令mvn package, 系统报错说没有找到依赖

    6. 须要又一次构建Hello第一个项目并安装到数据仓库, 在命令行Hello根文件夹下运行mvn clean install

    7. 又一次在HelloFriend文件夹下运行命令mvn package



  • 相关阅读:
    解释 ASP.NET中的Web页面与其隐藏类之间的关系
    B/S与C/S的联系与区别
    三层架构
    列举 ASP.NET页面之间传递值的几种方式
    什么是SQL注入式攻击?如何防范?
    post、get的区别
    Session,ViewState,Application,cookie的区别?
    Vue 09.前后端交互
    Vue 08.webpack中使用.vue组件
    Vue 07.webpack
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4049948.html
Copyright © 2020-2023  润新知