2.Maven特点,Maven约定,建立第一个Maven项目
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项目相关推荐
- idea添加maven libraries_使用IntelliJ IDEA创建一个Maven的Spring Boot项目
关于maven的安装和配置参考: Maven 3.6.1的配置及验证 关于IntelliJ IDEA安装配置参考: IntelliJ IDEA的安装和配置 1.打开IntelliJ IDEA,选择&q ...
- 快速入门SSM整合配置建立第一个SSM项目模板
场景 对于新手来说,学过Spring.SpringMVC.Mybatis,但是将其整合起来搭建项目就 比较困难. 环境 Eclipse+Mysql5.7+jdk8,没有搭建Maven项目,入门已经将需 ...
- android工程的建立,第一个Android项目HelloWorld的建立及剖析
1.建立一个简单的Hello World程序 步骤1:启动Eclipse,选择 New->Other,如下图所示 步骤2:在出现的窗口中选择Android Project,如下图所示: 步骤3: ...
- 建立和使用Maven项目骨架Archetype
什么是Maven Archetype? 简单的说就是一个Maven项目的基础模板,利用这个模板我们就可快速的建立一个新的该类型项目,同时也可以建立自己的项目骨架. Maven所提供的archetype ...
- Maven(五)使用Nexus搭建Maven私服
文章装载于:http://blog.csdn.net/jun55xiu/article/details/39497089 Nexus介绍 Nexus是Maven仓库管理器,如果你使用Maven,你可以 ...
- maven实战(一)简单mvn构建项目详解
创建简单工程: **mvn archetype:generate -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -Dpackage ...
- Identity Server 4 原理和实战(完结)_建立Identity Server 4项目,Client Credentials 授权实例...
创建项目 dotnet new -i IdentityServer4.Templates 多出来的这些模板 adminUI用来测试,想要用再生产环境,需要交钱 结合core的 Identity来使用 ...
- 0 Maven中央仓库爬取技术与内网本地Maven中央仓库的建立与使用(引言)【力图解决一个非常蛋疼的问题】
随着国产化CPU与操作系统的"流行",美中不足的就是没一个国产化的开发语言(呵呵),开源的Java开发也就如火如荼的开展起来.其实在互联网上开发Java的确很爽,海量的资源海量的库 ...
- 3.将maven项目jar纳入maven仓库,Mave项目依赖另外一个Maven项目的案例
1 若想让maven项目依赖另外一个maven项目,被依赖的项目要在maven仓库中有相应的jar包,所以要对依赖的项目执行mvninstall命令. 2 新建第二个项目模块HelloFrien ...
最新文章
- 基于i2c子系统的驱动分析
- innerText与innerHTML的区别
- 国内外NLP领域学术界和工业界的牛人和团队
- ML之NB:基于NB朴素贝叶斯算法训练20类新闻文本数据集进行多分类预测
- AI驱动的超分辨技术落地实践
- java如何调用系统保存框_java使用poi实现excel导出之后如何弹出保存提示框
- 试图用Session Administration删除某用户的session时报错
- Fragment使用--文章集锦
- 技术人必备的碎片化时间学习工具
- Seafile 开源企业云盘部署
- sqlmap的二次开发
- 论文浅尝 | BERT:Pre-training of Deep Bidirectional Transformers
- 安卓app测试之Monkey日志分析《转载》
- BZOJ1090[SCOI2003] 字符串折叠
- 五大主流浏览器内核以及国内常见的几种浏览器内核总结
- 基于imx6ul下调试tlv320aic3x声卡
- 网络编程项目 (网络词典)
- 开发网站为“禁止复制”“禁用右键功能”(易被破解)
- 【计算机网络学习笔记04】网络体系架构与网络协议
- 关于win10 无线网络不可用,网络适配器出现全感叹号
热门文章
- boost::math::inverse_gamma_distribution用法的测试程序
- boost::filesystem模块演示错误报告的工作原理的测试程序
- ITK:使用基于多尺寸Hessian的量度来分割血管
- ITK:过滤图像FilterImage
- ITK:概念检查是浮点数
- VTK:Shaders之MarbleShader
- OpenCV图像操作的实例(附完整代码)
- OpenCV textDetectionModel和textRecognitionModel API的端到端的实例(附完整代码)
- OpenCV Java开发简介
- C++ 暴力搜索String pattern search字符串模式的实现算法(附完整源码)