目录
前言
什么是Maven
Maven的优点
Maven的核心概念有哪些
POM是什么
什么是依赖管理
什么是插件
什么是仓库
概述
1、构建
2、依赖
安装与配置
1、下载
2、Windows Maven安装
1)解压到指定目录
2)配置环境变量
3)目录结构
3、配置
1.根目录创建一个文件夹
2.settings.xml文件配置
3.settings.xml文件配置镜像仓库
常用命令
创建Maven项目
1、手工创建
1)Maven项目目录结构
2)pom.xml配置文件
3)说明
JUnit
1、概念
2、使用步骤
常用API
1)@Test注解
2)assertEquals()方法
3)assertTrue()和assertFalse()方法
4)assertNotNull()和assertNull()方法
5)@Before和@After注解
6)@BeforeClass和@AfterClass注解
7)@Ignore注解
Lombok
1、@Data注解
2、@AllArgsConstructor和@NoArgsConstructor注解
3、@Builder注解
总结
Maven是一个开源的项目管理工具,它可以帮助开发人员自动化构建、测试和部署Java项目
Maven是一个开源的项目管理工具,它可以帮助开发人员自动化构建、测试和部署Java项目。
Maven可以自动化构建、测试和部署Java项目,减少了手动操作的时间和错误率。它还可以管理项目的依赖关系,避免了版本冲突和依赖缺失的问题。
Maven的核心概念包括项目对象模型(POM)、依赖管理、插件、仓库和生命周期。
POM是项目对象模型,它是Maven项目的核心文件,包含了项目的基本信息、依赖关系、构建配置和插件等信息。
pom.xml 文件是Maven项目的核心文件(非常重要,Maven项目不能没有pom)
pom.xml 他是干嘛的呢?
依赖管理是Maven的一个重要功能,它可以自动管理项目的依赖关系,包括下载、安装和更新依赖库;它提供了中央仓库,能帮我们自动下载构件。
搜索网址,各种依赖都在这个网址里,点击进入网址搜索自己所需的依赖(构建)如:servlet、jsp、test(Junit) 等.....:点击进入
这下面的是我常用的一些依赖
junit
junit
4.13.2
test
javax.servlet
javax.servlet-api
3.1.0
provided
javax.servlet.jsp
javax.servlet.jsp-api
2.3.3
provided
org.projectlombok
lombok
1.18.26
provided
javax.servlet
jstl
1.2
com.mysql
mysql-connector-j
8.0.33
com.google.code.gson
gson
2.10.1
插件是Maven的一个扩展机制,它可以扩展Maven的功能,例如编译、测试、打包和部署等。
仓库是Maven的一个重要概念,它是存储依赖库和插件库的地方,包括本地仓库和远程仓库。
Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具。Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构件,报告和文档的软件项目管理工具。
Maven是一个优秀的构建工具。 它能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。我们不需要也不应该一遍又一遍地输入命令,一次又一次地点击鼠标,我们要做的是使用Maven配置好项目,然后输入简单的命令(如:mvn clean install),Maven会帮我们处理那些烦琐的任务。
Java 项目开发过程中,构建指的是使用原材料生产产品的过程。
脱离IDE环境构建项目
Maven还是一个依赖管理工具和项目信息管理工具。它提供了中央仓库,能帮我们自动下载构件。
如果 A 工程里面用到了 B 工程的类、接口、配置文件等等这样的资源,那么我们就可以说 A 依赖 B。例如:
依赖管理中要解决的具体问题:
注意:
注意:
- MAVEN_HOME:D:\java\Maven\apache-maven-3.9.1-bin\apache-maven-3.9.1
- Path:%MAVEN_HOME%\bin
我以前配置过的,我就不重新配置了,那么我把配置步骤给大家展示出来!大家跟着步骤配置,就不会有什么问题的!
配置好之后试一下
$ mvn -v
测试通过如图
2.1) 注意如果是Linux或Mac系统
要编辑用户目录下的.bash_profile文件
# 编辑用户目录下的.bash_profile文件
# 编辑用户目录下的.bash_profile文件 $ vim .bash_profile ########### Maven1.0 Evn ################## # export MAVEN_HOME=/Users/circleus/apache-maven-3.5.4 # export MAVEN_HOME=/Users/circleus/aliyun-maven-3.6.0 # export PATH=$MAVEN_HOME/bin:$PATH ########### Maven2.0 Evn ################## # export M2_HOME=/Users/circleus/aliyun-maven-3.6.0 # export M2_HOME=/Users/circleus/apache-maven-3.5.4 # export PATH=$PATH:$M2_HOME/bin ########### Maven3.0 Evn ################## # export PATH=/Users/circleus/aliyun-maven-3.6.0/bin:$PATH
路径:D:\java\Maven\apache-maven-3.9.1-bin
创建:LocalAddress 文件夹
首先自己创建一个文件夹如:创建一个LocalAddress 文件夹
文件夹的命名是随意的,建议命名有意义的!!
路径:D:\java\Maven\apache-maven-3.9.1-bin\apache-maven-3.9.1\conf
配置:settings.xml文件
配置本地仓库
D:\java\Maven\apache-maven-3.9.1-bin\LocalAddress
看图:
nexus-aliyun
*
Nexus aliyun.
http://maven.aliyun.com/nexus/content/groups/public
注意:打开settings.xml,Ctrl+F搜索 http://0.0.0.0/ 跳到 mirrors
在这里面配置阿里云镜像
安装与配置差不多已经完成了,最后一步就是把settings.xml文件复制粘贴到LocalAddress 文件夹中
注意: 由于我以前配置好了,所以里面才存放了那么多文件,刚刚配置的时候是没有那么多的
查看maven版本
mvn -v
编译
mvn compile
打包
mvn package
测试
mvn test
清除target
mvn clean
安装jar包到本地仓库中
mvn install
在Maven中,
元素可以指定不同的打包类型。除了"jar"之外,常见的打包类型还包括:
- JAR(Java Archive):用于打包Java类文件和相关资源。
- WAR(Web Application Archive):用于打包Java Web应用程序,包含Java类文件、Web资源和部署描述符。
- EAR(Enterprise Application Archive):用于打包企业级Java应用程序,包含WAR文件和其他组件(如EJB模块)以及部署描述符。
- POM(Project Object Model):用于聚合多个子项目的父项目,本身不会生成任何实际的构建产物。
除了这些常见的打包类型,Maven还支持其他特殊的打包类型,如RAR(Resource Adapter Archive)和BUNDLE(OSGi Bundle)等,用于特定的应用场景。可以根据具体需求选择适当的打包类型来构建项目。
封装成jar包
4.0.0
edu.nf
demo
1.0-SNAPSHOT
jar
ums
http://maven.apache.org
UTF-8
junit
junit
4.13.2
test
javax.servlet
javax.servlet-api
3.1.0
provided
封装成war包
4.0.0
edu.nf
demo
1.0-SNAPSHOT
war
ums
http://maven.apache.org
UTF-8
junit
junit
4.13.2
test
javax.servlet
javax.servlet-api
3.1.0
provided
附上视频
纯手动创建一个Maven项目
JUnit是一个用于Java编程语言的测试框架,可以帮助开发人员编写自动化的单元测试和集成测试。
第一:在项目中添加JUnit依赖(在pom.xml配置Junit依赖)
junit
junit
4.13.2
test
第二:创建一个测试类,该类应该包含一些测试方法。在测试类中使用@Test注解 来标识测试方法。 在 java里 assertEquals这个的意思是表示比较实际值和期望值是否相等
package com.maven.demo ;
import org.junit.* ;
import org.junit.Assert.* ;
public class UserTest {
@Test
public void testHello() {
// 断言验证测试结果是否符合预期
Assert.assertEquals("hello",new User().sayHello()) ;
}
}
第三:在测试方法中编写测试代码。可以使用断言来验证测试结果是否符合预期。例如,使用assertEquals()方法来比较实际值和期望值。
第四:运行测试。可以使用IDE工具来运行测试,也可以使用Maven或Gradle等构建工具来运行测试。测试运行后,将会显示测试结果和测试覆盖率等相关信息。
用于标识一个测试方法。例如:
@Test
public void testAddition() {
int result = Calculator.add(2, 3);
assertEquals(5, result);
}
用于比较实际值和期望值是否相等。例如:
int result = Calculator.add(2, 3);
assertEquals(5, result);
用于验证一个条件是否为真或为假。例如:
boolean flag = Calculator.isPositive(5);
assertTrue(flag);
flag = Calculator.isPositive(-5);
assertFalse(flag);
用于验证对象是否为空或不为空。例如:
String str = Calculator.getString();
assertNotNull(str);
str = null;
assertNull(str);
用于标识测试方法之前和之后要执行的方法。例如:
@Before
public void setUp() {
Stystem.out.println("我先测试的")
}
@After
public void tearDown() {
Stystem.out.println("我最后测试")
}
public void tes(){
System.out.println("测试中...")
}
用于标识所有测试方法之前和之后要执行的方法。例如:
@BeforeClass
public static void setUpClass() {
// 初始化测试数据
}
@AfterClass
public static void tearDownClass() {
// 清理测试数据
}
@BeforeClass
public static void setUpClass() {
// 初始化测试数据
}
@AfterClass
public static void tearDownClass() {
// 清理测试数据
}
用于标识某个测试方法需要被忽略。例如:
@Ignore("这个测试方法还没准备好")
@Test
public void testSomething() {
// 测试代码
}
依赖包
org.projectlombok
lombok
1.18.26
provided
Lombok是一个Java库,它可以通过注解自动化Java类的样板代码,从而简化开发人员的编程任务。
使用@Data注解可以自动生成JavaBean所需的getter、setter、toString、equals和hashCode方法。
@Data
public class Person {
private String name;
private int age;
}
使用@AllArgsConstructor和@NoArgsConstructor注解可以自动生成有参构造函数和无参构造函数。
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
private String name;
private int age;
}
使用@Builder注解可以自动生成Builder模式所需的代码,可以方便地创建复杂对象。
@Data
@Builder
public class Person {
private String name;
private int age;
private String address;
}
Person person = Person.builder()
.name("张三")
.age(20)
.address("北京市")
.build();
好了,费了好大的劲,终于写好了,希望多多支持,有什么不对的地方请多多指出!