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

项目构建

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

理想的项目构建:

高度自动化

跨平台

可重用的组件

标准化的

依赖管理

工程的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>

工程的名字

<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目录不见了)

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

d)cmd中录入 mvn test命令,查看根目录变化

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

2.Maven特点,Maven约定,建立第一个Maven项目相关推荐

  1. idea添加maven libraries_使用IntelliJ IDEA创建一个Maven的Spring Boot项目

    关于maven的安装和配置参考: Maven 3.6.1的配置及验证 关于IntelliJ IDEA安装配置参考: IntelliJ IDEA的安装和配置 1.打开IntelliJ IDEA,选择&q ...

  2. 快速入门SSM整合配置建立第一个SSM项目模板

    场景 对于新手来说,学过Spring.SpringMVC.Mybatis,但是将其整合起来搭建项目就 比较困难. 环境 Eclipse+Mysql5.7+jdk8,没有搭建Maven项目,入门已经将需 ...

  3. android工程的建立,第一个Android项目HelloWorld的建立及剖析

    1.建立一个简单的Hello World程序 步骤1:启动Eclipse,选择 New->Other,如下图所示 步骤2:在出现的窗口中选择Android Project,如下图所示: 步骤3: ...

  4. 建立和使用Maven项目骨架Archetype

    什么是Maven Archetype? 简单的说就是一个Maven项目的基础模板,利用这个模板我们就可快速的建立一个新的该类型项目,同时也可以建立自己的项目骨架. Maven所提供的archetype ...

  5. Maven(五)使用Nexus搭建Maven私服

    文章装载于:http://blog.csdn.net/jun55xiu/article/details/39497089 Nexus介绍 Nexus是Maven仓库管理器,如果你使用Maven,你可以 ...

  6. maven实战(一)简单mvn构建项目详解

    创建简单工程: **mvn archetype:generate -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -Dpackage ...

  7. Identity Server 4 原理和实战(完结)_建立Identity Server 4项目,Client Credentials 授权实例...

    创建项目 dotnet new -i IdentityServer4.Templates 多出来的这些模板 adminUI用来测试,想要用再生产环境,需要交钱 结合core的 Identity来使用 ...

  8. 0 Maven中央仓库爬取技术与内网本地Maven中央仓库的建立与使用(引言)【力图解决一个非常蛋疼的问题】

    随着国产化CPU与操作系统的"流行",美中不足的就是没一个国产化的开发语言(呵呵),开源的Java开发也就如火如荼的开展起来.其实在互联网上开发Java的确很爽,海量的资源海量的库 ...

  9. 3.将maven项目jar纳入maven仓库,Mave项目依赖另外一个Maven项目的案例

     1 若想让maven项目依赖另外一个maven项目,被依赖的项目要在maven仓库中有相应的jar包,所以要对依赖的项目执行mvninstall命令. 2 新建第二个项目模块HelloFrien ...

最新文章

  1. 基于i2c子系统的驱动分析
  2. innerText与innerHTML的区别
  3. 国内外NLP领域学术界和工业界的牛人和团队
  4. ML之NB:基于NB朴素贝叶斯算法训练20类新闻文本数据集进行多分类预测
  5. AI驱动的超分辨技术落地实践
  6. java如何调用系统保存框_java使用poi实现excel导出之后如何弹出保存提示框
  7. 试图用Session Administration删除某用户的session时报错
  8. Fragment使用--文章集锦
  9. 技术人必备的碎片化时间学习工具
  10. Seafile 开源企业云盘部署
  11. sqlmap的二次开发
  12. 论文浅尝 | BERT:Pre-training of Deep Bidirectional Transformers
  13. 安卓app测试之Monkey日志分析《转载》
  14. BZOJ1090[SCOI2003] 字符串折叠
  15. 五大主流浏览器内核以及国内常见的几种浏览器内核总结
  16. 基于imx6ul下调试tlv320aic3x声卡
  17. 网络编程项目 (网络词典)
  18. 开发网站为“禁止复制”“禁用右键功能”(易被破解)
  19. 【计算机网络学习笔记04】网络体系架构与网络协议
  20. 关于win10 无线网络不可用,网络适配器出现全感叹号

热门文章

  1. boost::math::inverse_gamma_distribution用法的测试程序
  2. boost::filesystem模块演示错误报告的工作原理的测试程序
  3. ITK:使用基于多尺寸Hessian的量度来分割血管
  4. ITK:过滤图像FilterImage
  5. ITK:概念检查是浮点数
  6. VTK:Shaders之MarbleShader
  7. OpenCV图像操作的实例(附完整代码)
  8. OpenCV textDetectionModel和textRecognitionModel API的端到端的实例(附完整代码)
  9. OpenCV Java开发简介
  10. C++ 暴力搜索String pattern search字符串模式的实现算法(附完整源码)