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. vue如何根据返回的值对元素进行样式渲染

    1.最终显示样式: 需要:根据任务状态值,显示不同颜色的原点表示任务状态,以及对优先级的数据,进行☆标记 2.代码实现: 在<el-table-column>中需要显示的内容前面,添加图标 ...

  2. 关于VMNet1、VMNet8、

    关于vmnet1~~~~~vmnet8 2008年04月11日 星期五 23:18 先说vmnet0,实际上就是一个虚拟的网桥,这个网桥有很若干个端口,一个端口用于连接你的Host,一个端口用于连接你 ...

  3. 【MFC设置静态文本框背景为透明】

    视图类中加入OnCtlColor()函数: IDC_STATIC1为静态文本框ID HBRUSH CAngleView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT n ...

  4. CF 567C(Geometric Progression-map)

    C. Geometric Progression time limit per test 1 second memory limit per test 256 megabytes input stan ...

  5. JDBC连接mysql时出现的ssl问题

    使用MySQL数据库时出现如下错误: WARN: Establishing SSL connection without server's identity verification is not r ...

  6. 为powerpc交叉编译nginx

    HOST: MINT NGINX VERSION: nginx-1.8.0(nginx-1.8.0.tar.gz) ZLIB VERSION: zlib-1.2.8 PCRE VERSION: pcr ...

  7. Codeforces Round #261 (Div. 2)459A. Pashmak and Garden(数学题)

    题目链接:http://codeforces.com/problemset/problem/459/A A. Pashmak and Garden time limit per test 1 seco ...

  8. dll开发

    _declspec(dllexport) void fun() { }

  9. SSRS参数不能默认全选的解决方法

    解决方法选自<SQL Server 2008 R2 Reporting Services 报表服务>一书,亲测有效. 注意:参数默认值如果是字符串需要类型转换 =CStr("AL ...

  10. crontab任务调度

    基本语法 crontab [选项] 选项: -e:    编辑crontab定时任务 -l:    查询crontab任务 -r:    删除当前用户所有的crontab任务 2)参数说明 [root ...