远程仓库可以在互联网内也可以在局域网内。
- 中央仓库:在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。
2.2.2 Maven本地仓库的配置
2.2.3 全局setting与用户setting
-
maven仓库地址、私服等配置信息需要在setting.xml文件中配置,分为全局配置和用户配置。
-
在maven安装目录下的有 conf/setting.xml文件,此setting.xml文件用于maven的所有project项目,它作为maven的全局配置。
-
如需要个性配置则需要在用户配置中设置,用户配置的setting.xml文件默认的位置在:
${user.dir} /.m2/settings.xml
目录中,${user.dir}
指windows 中的用户目录。 -
maven会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。
2.3.1 Maven工程的目录结构
作为一个maven工程,它的src目录和pom.xml是必备的。
进入src目录后,我们发现它里面的目录结构如下:
src/main/java —— 存放项目的.java文件
src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件
src/test/java —— 存放所有单元测试.java文件,如JUnit测试类
src/test/resources —— 测试资源文件
target —— 项目输出位置,编译后的class文件会输出到此目录
pom.xml——maven项目核心配置文件
注意:如果是普通的java项目,那么就没有webapp目录。
2.3.2 Maven工程的运行
进入maven工程目录(当前目录有pom.xml文件),运行tomcat:run命令。
根据上边的提示信息,通过浏览器访问:http://localhost:8080/maven-helloworld/
2.3.3 问题处理
如果本地仓库配置错误会报下边的错误
- 分析:
maven工程运行先从本地仓库找jar包,本地仓库没有再从中央仓库找,上边提示downloading…
表示 从中央仓库下载jar,由于本地没有联网,报错。
- 解决:
在maven安装目录的conf/setting.xml文件中配置本地仓库,参考:“maven仓库/配置本地仓库章节”。
========================================================================
我们可以在cmd中通过一系列的maven命令来对我们的maven-helloworld工程进行编译、测试、运行、打包、安装、部署。
compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。
cmd进入命令状态,执行mvn compile,如下图提示成功:
查看 target目录,class文件已生成,编译完成。
test是maven工程的测试命令 mvn test,会执行src/test/java下的单元测试类。
cmd执行mvn test执行src/test/java下单元测试类,下图为测试结果,运行1个测试用例,全部成功。
clean是maven工程的清理命令,执行 clean会删除target目录及内容。
package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。
install是maven工程的安装命令,执行install将maven打成jar包或war包发布到本地仓库。
从运行结果中,可以看出:
当后面的命令执行时,前面的操作过程也都会自动执行,
maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:
Clean Lifecycle
在进行真正的构建之前进行一些清理工作。
Default Lifecycle
构建的核心部分,编译,测试,打包,部署等等。
Site Lifecycle
生成项目报告,站点,发布站点。
Maven包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
- 项目对象模型 (Project Object Model)
一个maven工程都有一个pom.xml文件,通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标等。
- 依赖管理系统(Dependency Management System)
通过maven的依赖管理对项目所依赖的jar 包进行统一管理。
比如:项目依赖junit4.9,通过在pom.xml中定义junit4.9的依赖即使用junit4.9,如下所示是junit4.9的依赖定义:
junit
junit
4.9
test
- 一个项目生命周期(Project Lifecycle)
使用maven完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven将这些过程规范为一个生命周期,如下所示是生命周期的各各阶段:
maven通过执行一些简单命令即可实现上边生命周期的各各过程,比如执行mvn compile执行编译、执行mvn clean执行清理。
- 一组标准集合
maven将整个项目管理过程定义一组标准,比如:通过maven构建工程有标准的目录结构,有标准的生命周期阶段、依赖管理有标准的坐标定义等。
- 插件(plugin)目标(goal)
maven 管理项目生命周期过程都是基于插件完成的。
============================================================================
- setting中搜索Maven设置
- 配置创建工程插件
-
打开idea,创建新工程
-
声明坐标
-
确认Maven环境
-
初始目录
scopr
可以设置jar包使用范围
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下
426635.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0thaVNhckg=,size_16,color_FFFFFF,t_70)
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
[外链图片转存中…(img-g1iTT3Ak-1714330068120)]
还有更多面试复习笔记分享如下
[外链图片转存中…(img-7kU9LZ3x-1714330068121)]