1.Maven是什么
Maven不仅是一个构建工具,Maven更是一个项目管理工具,除了构建功能之外Maven还可以生成报告,生成Web站点,推动团队成员之间的交流。
Maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”。作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手
2.Maven简单应用
2.2.3环境变量配置完成测试
输入Maven口令: mvn -v 进行测试是否安装成功
3.定义pom.xml文件
3.1该文件用来约束maven写法
4.Maven入门口令介绍
第一个Maven命令:mvn compile(编译)
首先在指定的目录下建立一个工程名字为Maven-Demo的工程.
注意:同pom.xml文件中的<artifactId>中的名字相同
并手动创建该项目工程D:\mavenDemo\src\main\java\com\hp\maven
注意:红色部分为固定写法 绿色部分为pom.xml文件中的<groupID>属性相同
启动CMD切换到项目工程主目录 并执行 mvn compile 进行相应的依赖jar下载
下载成功后会在该工程的根目录下多出一个target目录
例如: target\classes\com\hp\maven
\ 该目录下放的是java编译后的class文件
注:
只要使用Maven这种模式生成目录结构并按照pom.xml指定的规则,它就会对java文件进行编译
5.建立测试
在src根目录下建立test目录
目录结构: test/java/com/hp/maven/TestHelloMaven.java
并在pom.xml文件中引入依赖的jar文件
比如引入junit.jar文件
第二个Maven命令:mvn test(测试)
打开cmd 切换到项目的根目录执行mvn test
1.下载TestHelloMaven.java所依赖的jar文件
2.并将TestHelloMaven.java编译成class文件
Maven给我们带来直观的好处
就这样我们就引入了junit.jar文件
只要把我们的项目按照Maven的要求放到Maven的目
录中它就会自动根据pom.xml配置,对我们的项目进
行编译,测试,发布等等.
执行完mvn test 命令会生成测试报告会多出三个文件夹来
surefire-reports:用来存放测试信息报告
Test-class:用来存放哪个类进行测试
第三个Maven命令:mvn clean
清空测试报告会删除target下的编译过得类和生成测试报告的三个文件夹
第四个Maven命令:mvn package
4.1.下载相应的jar包
4.2. 执行测试类
4.3.生成测试报告
4.4.生成打包项目的信息
4.5.将该项目进行打包
6.在另一个工程中引入另一个工程的类
<?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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 针对一个项目的普遍唯一识别符。通常用一个完全正确 的包的名字来与其他项目的类似名字来进行区分(比如:org.apache.maven) --> <!-- groupId: groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如比如:org.apache.maven生成的相对路径为:/org/apache/maven --> <groupId>com.hp.maven</groupId> <!--项目的通用名称 --> <artifactId>maven-Demo2</artifactId> <!--当前项目产生的artifact的当前版本。 --> <version>0.0.2-SNAPSHOT</version> <!--引入项目工程中用到的jar包 这样就可以进行依赖jar包的下载--> <dependencies> <!--引入某一个依赖--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.1</version> <!-- scope 说明 - compile :默认范围,用于编译 - provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath - runtime: 在执行时,需要使用 - test: 用于test任务时使用 - system: 需要外在提供相应得元素。通过systemPath来取得 - systemPath: 仅用于范围为system。提供相应的路径 - optional: 标注可选,当项目自身也是依赖时。用于连续依赖时使用 --> <scope>test</scope> </dependency> <dependency> <groupId>com.hp.maven</groupId> <artifactId>maven-Demo</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </project>
在执行 mvn compile 报错说
[ERROR] Failed to execute goal on project maven-Demo2: Could not resolve dependencies for project com.hp.maven:maven-Demo2:jar:0.0.2-SNAPSHOT: Could n
ot find artifact com.hp.maven:maven-Demo:jar:0.0.1-SNAPSHOT -> [Help 1]
第五个命令: mvn install
mvn install 这个命令会把当前项目或模块打包之后注入到本地m2/Repository中,以供引用。我们平时做项目的时候,也常把 项目编译后打成jar包,让其他项目引用。maven提供的install命令更方便快捷的实现了这个操作,并且可供maven模块化管 理,mvn package 可以生成相应的jar包。
然后就可以再另一个项目中通过在pom.xml配置的<dependency>
<groupId>com.hp.maven</groupId>
<artifactId>maven-Demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
就可以再另一个项目中引用另一个项目的类