Maven学习与使用
本文最后更新于:2021年9月29日 凌晨
概览:Maven
Maven
项目管理工具
包含:
- POM,Project Object Model,项目对象模型
- 一组标准集合
- Project Lifecycle,一个项目生命周期
- 依赖管理系统
与传统web工程的对比
传统web工程,jar包在项目中;
maven开发的项目中,jar包不在项目中。
- maven通过jar包的坐标来引入jar包,
- jar包存在于仓库之中
- 多个项目共用本地仓库中的同一个jar包。
这就是依赖管理:对jar包的管理过程。
仓库
- 本地仓库
- 中央仓库:放置了几乎所有开源的Jar包
- 远程仓库(私服):公司内部的,也可以从本地仓库上传到上面。
maven项目标准接口
src/main/java:核心代码
src/main/resoures:配置文件部分
src/main/webapp:页面资源等
src/test/java:测试代码
src/test/resoures:测试配置文件
Maven命令:
clean:清除target,删除本地编译的信息
compile:编译
test:main和test的代码都进行了编译,生成target。并运行所有的test
package:main和test的代码都进行了编译,生成target,并把打成的包放在这里面,<packaging>
中指定打包方式
install:main和test的代码都进行了编译,生成target,并把打成的包放在这里面,并把项目打在了本地仓库。
执行:
1 |
|
maven生命周期Lifecycle
1 |
|
上述是默认生命周期,生命周期就是执行后面的默认前面的内容都会被执行 。
还有一个clean就是单独的清理生命周期。
依赖管理
- 项目对象模型POM
- 即pom.xml
- 包含基本的项目自身信息,项目运行所依赖的jar包信息,项目运行环境信息。
- 依赖管理模型Dependency
- groupId:公司组织名称
- artifactId:项目名
- version:版本号
- scope:指定作用域,什么时候使用。
- 例如:servlet的jar包本地仓库有,tomcat的环境中也有,就会有冲突,报java.lang.ClassCastException,不能被转成servlet。这时候指定作用域为
<scope>provided</scope>
即可。
- 例如:servlet的jar包本地仓库有,tomcat的环境中也有,就会有冲突,报java.lang.ClassCastException,不能被转成servlet。这时候指定作用域为
- 一键构建:
- maven默认的生命周期中的每一个命令都对应了maven底层一个插件。
Maven其他配置
路径:setting –> Build –> Build Tools –> Maven –> Runner –> VM Options
VM Option: -DarchetypeCatalog=internal 。不联网时使用本地仓库
maven修改运行环境
Tomcat插件:
Maven是默认集成了一个tomcat插件的,tomcat6版本。但是如果想使用tomcat7该如何做呢?
但是貌似失效了,(20210920),主要记录一下<configuration>
标签和内部的port。
1 |
|
JDK插件:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!