嗯,实训的时候第一次接触maven,感觉好方便,嗯,所以假期的时候刷这本书,好累呀,是心里不大舒服,加油,未来。
木开子 2019.18
第一章 Maven简介
Maven译为知识的积累,或行家。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理,Maven最大化的消除了构建的重复,抽象了构建生命周期,为绝大部分的构建任务提供了以实现的插件。
Make最早的构建工具,Ant最早构建tomcat,都为过程式。
Maven是申明式的,项目构建过程和过程各个阶段所需要的工作由插件实现,并且大部分插件都是现成的,开发者只需要声明项目的基本元素。Maven就执行内置的构建过程,很大程度消除重复。
不重复发明轮子。
Maven与极限编程(XP):简单,交流与反馈,测试驱动开发(TDD),十分钟构建,持续集成,富有信息的工作区。
第二章,基于Eclipse的Maven的安装
maven的安装(软件)
将maven压缩包解压, 复制到没有中文没有空格的目录下,即安装完毕
1.1maven的目录介绍
1.2配置环境变量
MAVEN_HOME= F:\Software\apache-maven-3.3.9
Path=%MAVEN_HOME%\bin;... ...
1.3配置本地仓库
将/资料/本地仓库/ Maven_Repository.zip 解压
复制 F盘根目录下
1.4 配置本地仓库
在maven的安装目录中 apache-maven-3.3.9/conf/settings.xml 配置本地仓库:将本地仓库地址复制到localRepsitory下。
1.5 测试maven安装成功
打开cmd本地控制台, 输入 mvn –version
第三章 ,Maven的使用入门
1,编写POM(Porject Object Model,项目对象模型):pom.xml定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等。
<?xml version="1.0" encoding="UTF-8"?>
<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>com.liruilong.mvnbook</groupId>
<artifactId>Hellow-word</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Hellow-word</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
project元素是所有pom.xml的根元素,子元素modelVersion指定pom模型的版本,groupId(定义项目属于那个组),artifactId(定义当前项目在组中的唯一ID),version(当前项目的版本号)三个元素定义了一个项目的基本坐标。name声明项目名称在Maven的世界里任何的jar,pom,war都是基于基本坐标区分。
默认情况下Maven假设项目的主代码位于src/main/java目录下。一般来说,项目中的Java类的包都应该基于项目的groupId和artifactId。即所在包名为groupld.artfactld。
idea无法创建java类:
Sources 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点需要牢记。
Tests 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比彻底的。
Resources 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。
Test Resources 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。
Excluded 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。
通过上面的介绍,我们知道对于非 maven 项目我们只要会设置 src 即可。
如上图箭头所示,被标注的目录会在右侧有一个总的概括。其中 classes 虽然是 Excluded 目录,但是它有特殊性,可以不显示在这里。
maven实战:
Java项目构建步骤:
1. 打开软件,点击如图所示的【Create New Project】
2. 弹出的窗口中,选中【Maven】-》勾选【Create from archetype】->【...quickstart】->【next】
3. 弹窗中输入GroupID、AftifactId
4. 选择您自己的Maven,然后默认选择settings.xml和你的本地方库的位置
5. 步骤4后,输入你的项目名称
6. 点击右下角的【enbale auto-import】
等待依赖库下载完毕后,显示工程如图所示
代码编写完毕,使用Maven进行编译,输出信息:
clean告诉Maven清理输出目录target/,compile告诉Maven编译项目的主代码。
Maven先执行clean任务,删除target/目录。默认情况下,Maven构建的所有输出都在target/目录中,接着执行resources任务(未定义项目资源),最后执行compile任务。将项目的主代码编译到target/calss目录。
编写测试代码:在Java的世界里,由Kent Beck 和Erich Gamma建立的JUnit是事实上的单元测试标准。使用Junit,首先需要在pom文件中填加依赖,
<?xml version="1.0" encoding="UTF-8"?>
<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>com.liruilong.mvnbook</groupId>
<artifactId>Hellow-word</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Hellow-word</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
在代码中添加dependencies 元素,可以包还多个dependency元素申明项目的依赖,需要添加基本坐标。
对于值为test的元素scope为依赖范围,test时表示只对测试有效,不声明时,默认值为compile,即对所有代码有效。
一个典型的单元测试包含三个步骤,1,准备测试类数据。2,执行要测试的行为。3,检查结果。
第五章,坐标和依赖
1,何为Maven坐标:Maven定义了一组规则:世界上任何一个构件都可以使用Maven坐标唯一标识,Maven坐标元素包括grouId,artifactId,version,pack-ging,classifier。Maven内置了一个中央仓库的地址,该仓库中包含了世界上大部分的流行开源项目构件,在开发自己的项目也需要定义适当的坐标,是Maven强制要求的。
2,坐标详解:
<groupId>org.sonatype.nexus</groupId>
<artifactId>nexus-indexer</artifactId>
<version>2.0.0</version>
<packaging>jar</packaging>
grouId:定义当前Maven项目隶属的实际项目。
artifactId:该元素定义实际项目中的一个Maven项目(模块),推存使用实际项目名称作为artifacId的前缀,
version:该元素定义的Maven当前所属的Maven项目。
packaging:定义Maven项目的打开方式。默认为jar。
calssifier:用来帮助定义构建输出的一些附属构件。
前三个必须定义,packaging可选,classifier不能直接定义。
- Maven概述
- Maven的作用
- Maven的概念模型
- Maven的仓库
- maven的坐标
<!--导入junit的jar包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
1.6Maven酷站
我们可以到http://mvnrepository.com/搜索需要的jar包的依赖信息。
嗯,好吧,后面没有看,也不知道时间都去哪里啦!嗯,来青岛这边实训,老师讲了一些,所以这篇博客,总结老师的一些,写完。 2019.5.9
标签:实战,maven,项目,读书笔记,Maven,编译,src,目录 From: https://blog.51cto.com/u_13474506/5929830