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

项目构建

清理à编译à測试à报告à打包à部署

理想的项目构建:

高度自己主动化

跨平台

可重用的组件

标准化的

依赖管理

project的jar包的管理

要进行依赖管理的原因

自己主动下载

统一依赖管理

项目信息管理(包含)

项目名称描写叙述等

开发者信息

开发人员信息等

2 Maven的特点

A拥有约定。知道你的代码在哪里,放到哪里去

B拥有一个生命周期。比如运行mvn install就能够自己主动运行编译,測试,打包等构件过程。

C仅仅须要定义一个pom.xml,然后把源代码放到默认的文件夹,Maven帮你处理其它事情。

3 Maven约定

A src/main/java –存放项目的.java文件

B src/main/resources –存放项目资源文件。比方spring,hibernate配置文件

C src/test/java –存放全部測试.java文件,比方JUnit測试类

D src/test/resources ---測试资源文件

E target ---项目输出位置,编译完毕后的东西放到这里面

F pom.xml

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.toto.maven</groupId>

包名

<artifactId>Hello</artifactId>

项目中主类的名

<version>0.0.1-SNAPSHOT</version>

主类的版本号

<name>Hello</name>

project的名字

<dependencies>

项目依赖

<dependency>

依赖

<groupId>junit</groupId>

依赖的东西,表示依赖junit

<artifactId>junit</artifactId>

<version>4.9</version>

<scope>test</scope>

</dependency>

</dependencies>

</project>

4新建一个Maven项目

在G:\maven下创建一个Hello项目

A  Maven约定的文件夹结构。并实际创建:

Hello

--src

------main

-------------java

-------------resources

------test

-------------java

-------------resources

--target

--pom.xml

B在项目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.toto.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>

C在src/main/java/cn/toto/maven文件夹下新建文件Hello.java

package cn.toto.maven;

public class Hello {

public String sayHello(String name){

return "Hello "+name+"!";

}

}

D在/src/test/java/cn/toto/maven文件夹下新建測试文件HelloTest.java

package cn.toto.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);

}

}

E使用maven

a) 打开cmd命令行,进入Hello项目根文件夹运行mvn
compile命令。查看根文件夹变化

在连网的情况下。假设没有对应的依赖的jar,它会自己主动从网上下载

b) cmd中继续录入mvn
clean命令。然后再次查看根文件夹变化(发现target文件夹不见了)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">

c)cmd中录入 mvn compile命令,查看根文件夹变化

d)cmd中录入 mvn test命令。查看根文件夹变化

e)cmd中录入 mvn package命令,查看根文件夹变化

2.Maven特点,Maven约定,建立第一个Maven项目的更多相关文章

  1. maven学习3,如何创建一个web项目

      Maven学习 (三) 使用m2eclipse创建web项目   1.首先确认你的eclipse已经安装好m2eclipse的环境,可以参照上两篇Maven学习内容 2.新建一个maven的项目 ...

  2. Maven(一)如何用Eclipse创建一个Maven项目

    1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...

  3. Maven:如何在eclipse里新建一个Maven的java项目和web项目

    如何在eclipse里新建一个Maven的java项目和web项目: 一:java项目 New-->Other-->Maven 右击项目-->properties,修改以下文件: ① ...

  4. maven系列(2)-第一个maven的项目

    上一篇简单了介绍了maven和maven的安装,这篇介绍如何用maven创建项目. 1. 命令行创建maven项目 maven创建项目很简单,直接调用mvn archetype:generate命令即 ...

  5. Maven学习 (五) Elipse中发布一个Maven项目到Tomcat

    对于maven初学者的我,经常遇到一个问题就是,maven项目创建成功后,本来已经添加了jar的依赖,但是发布到Tomcat中就是没有jar包存在, 启动Tomcat总是报没有找到jar包,可项目结构 ...

  6. Maven学习在Elipse中发布一个Maven项目到Tomcat

    原文:http://www.cnblogs.com/quanyongan/archive/2013/04/26/3044618.html 对于maven初学者的我,经常遇到一个问题就是,maven项目 ...

  7. 【读书札记】建立第一个Web项目

    安装配置好jdk.tomcat,我用的版本号是7.0.54,我放在C:\server\apache-tomcat-7.0.54下, CATALINA_BASE:C:\server\apache-tom ...

  8. Eclipse中一个Maven工程的目录结构

    在之前的javaSE开发中,没有很关注Eclipse工程目录下的环境,总是看见一个src就点进去新建一个包再写一个class.以后的日子中也没有机会注意到一个工程到底是怎么组织的这种问题,跟不要说自己 ...

  9. Eclipse中一个Maven工程的目录结构 (MacOS)

    1. 为什么写这篇文章 在之前的javaSE开发中,没有很关注Eclipse工程目录下的环境,总是看见一个src就点进去新建一个包再写一个class.以后的日子中也没有机会注意到一个工程到底是怎么组织 ...

随机推荐

  1. Android开发进度07

    1,今日:目标:完成记账功能 2,昨天:账单的增删改查方法 3,收获:无 4,问题:SQLite表单出现问题,提交后软件直接退出

  2. V4L2驱动程序架构

    1 V4L2简介 video4linux2(V4L2)是Linux内核中关于视频设备的内核驱动,它为Linux中视频设备访问提供了通用接口,在Linux系统中,V4L2驱动的Video设备节点路径通常 ...

  3. webpack的热更新

    webpack的热更新是如何做到的?说明其原理? webpack的热更新又称热替换(Hot Module Replacement),缩写为HMR. 这个机制可以做到不用刷新浏览器而将新变更的模块替换掉 ...

  4. Maven系列--web.xml 配置详解

    一 .web.xml介绍 启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 紧接着,容 ...

  5. redis基本数据类型和对应的底层数据结构

    Redis的数据类型包含string,list,hash,set,sorted set. Redis中定义了一个对象的结构体: /* * Redis 对象 */ typedef struct redi ...

  6. [React] Use the new React Context API

    The React documentation has been warning us for a long time now that context shouldn't be used and t ...

  7. poj1961--Period(KMP求最小循环节)

    Period Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 13511   Accepted: 6368 Descripti ...

  8. 黑马day14 过滤器概述&amp;生命周期&amp;运行过程

    过滤器:当訪问一个web资源的时候,过滤器就在你訪问这个web资源的前进行拦截...在放行过后...filter过滤器也能够做一些其它的事情. 编写过滤器的步骤: 1.写一个过滤器类实现filter接 ...

  9. 【跟我一步一步学Struts2】——拦截器

    前言 前面提到过拦截器.而且说拦截器仅仅能拦截Action.这里拦截器的调用体现了责任链模式.为什么说体现了责任链模式呢? 以下的一段话说的非常明确: Struts2将整个运行划分成若干同样类型的元素 ...

  10. QStandardItemModel的data线程安全(在插入数据时,临时禁止sizeHint去读model中的data)

    版权声明:本文为博主原创文章,欢迎转载,转载请注明出处 https://blog.csdn.net/MatchYang/article/details/52988257 在直接使用QStandardI ...