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. code-reading-notes--xml 解析

  2. ASP.NET-权限管理五张表

    ASP.NET 权限管理五张表 权限管理的表(5张表) 每个表里面必有的一些信息 序号 名称  字段  类型   主键 默认值 是否为空 备注 1  用户ID  ID      INT     是   ...

  3. .C#-NET开源方向基本

    我的理解,nancyFx是一个.net的微型框架,可以在Linux环境下运行,ServiceStack也是全平台框架,更大一些 owin的概念:Open Web Server Interface Fo ...

  4. 关于C++的一些函数的使用方法

    关于C++的一些函数的使用方法: http://www.shouce.ren/api/c/index.html

  5. 搜狗面试的经典题(C++map按值排序,class struct的差别)

    一:起因 (1)java  Map排序(key,value).请看还有一篇博客 java Map排序 (2)c++ map排序(key,value),能够对c++ map和java Map进行对照:之 ...

  6. 【iOS】UICollectionView自己定义Layout之蜂窝布局

    网上的UICollectionView的Layout布局,其cell的形状多为矩形和圆形. 本篇博文将正六边形作为cell的基本形状,为您展现独特的蜂窝布局效果及实现源代码. 帮助您让自己的App脱颖 ...

  7. POJ 1496 POJ 1850 组合计数

    Code Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8256 Accepted: 3906 Description Tran ...

  8. Popupwindow 显示, 其它背景变暗。 并加上点击事件 ~ (用于记录)

    public class MainActivity extends Activity implements OnClickListener { protected int mScreenWidth; ...

  9. (六)api网关服务 zuul-过滤器

    开启上文服务: Zuul给我们的第一印象通常是这样:它包含了对请求的路由和过滤两个功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础.过滤器功能则负责对请求的处理过 ...

  10. 项目结合activiti工作流框架使用

    项目结合activiti工作流框架使用: 1.项目与工作流框架的结合. 2.状态:草稿(待审批).审批中.审批通过.审批失败 3. 提交审批: 0 草稿(待审批),记录绑定工作流执行id,审批状态设置 ...