- jar 包管理(添加、获取、自动处理 jar 包依赖关系及冲突)
手动 jar 包管理很麻烦,需要自行到网上下载 jar 包,添加到项目的 lib 目录生效(Maven 只需要添加到 pom 即可);如果一个 jar 包又依赖很多其他 jar 包,又得手动找很多个(Maven 能自动下载);如果项目 A 依赖 B,B 依赖 C,且 B 和 C 依赖同一个 xxx.jar,但版本不同,那么项目 A 依赖哪个版本呢?冲突(Maven 会自动处理冲突,最短路径者优先);如果项目 A 依赖 B 和 C,且 B 和 C 依赖同一个 xxx.jar,但版本不同,那么项目 A 依赖哪个版本呢?冲突(Maven 会自动处理冲突,先声明者优先) - 项目模块化管理
- 项目自动化构建(查看生命周期,清理-编译-打包-……)
下载压缩包,解压并配置环境变量即可!注意 Maven 是 Java 开发的,依赖 JDK。
配置(conf/settings.xml)本地仓库
/path/to/local/repo
镜像仓库,把国外的仓库 jar 包复制一份到国内(提速),如下阿里云镜像仓库
idea 集成 Maven Lifecyclenexus-aliyun central Nexus aliyun http://maven.aliyun.com/nexus/content/groups/public
常见命令(可点击下面各命令,也可以在控制台执行 mvn 下面各命令)
clean:清除之前编译好的东西,target 包
validate:检验项目目录结构是否正确
compile:编译(main 目录里的)
test:编译并运行测试包下的内容
package:打包
install:安装到本地仓库
Project Object Model:项目对象模型,将 Java 工程的相关信息封装为对象作为便于 *** 作和管理的模型。
约定的目录结构约定 > 配置 > 编码(思想),比如 Springboot 提供大量默认配置(约定),大幅度减少配置量(配置文件报错难以定位),提高开发速度。
确定 Maven 仓库中唯一确定的 jar 包
groupId:公司域名倒序 + 项目名称
artifactId:项目的模块名称
version:模块的版本
compile:(默认)main 和 test 目录下的代码都可以使用,部署到 Tomcat 服务器上运行时该 jar 包会放在 WEB-INF 的 lib 目录下
test:仅 test 目录下的代码可以使用,部署到 Tomcat 服务器上运行时该 jar 包不会放在 WEB-INF 的 lib 目录下
provided:main 和 test 目录下的代码都可以使用,部署到 Tomcat 服务器上运行时该 jar 包不会放在 WEB-INF 的 lib 目录下(原因是,比如 Tomcat 自带的 jar 包,像 servlet)
compile:编译 classpath + 测试 classpath + 运行 classpath
test:测试 classpath
provided:编译 classpath + 测试 classpath
runtime:测试 classpath + 运行 classpath
如果项目 A 依赖 B,B 依赖 C,也就是 A 间接依赖 C,A 可以访问到 C 中 compile 的依赖包,C 中 test/provided 的依赖包对 A 不可见
依赖的排除统一管理 jar 包版本xxx.xxx.project module1.0-SNAPSHOT xxx xxx
继承2.0.0.RELEASE org.springframework spring-webmvc${spring.version}
父工程的打包方式为 pom,删除 src 目录
xxx Parentpom 1.0-SNAPSHOT
父工程统一管理 jar 包版本,子工程中也要引入相应 jar 包,不用写版本,若写版本会覆盖掉父工程对应的版本。如果不用 dependencyManagement,子工程不用引入对应的包就行!
xxx xxx1.0 xxx
子工程1 子工程2
子工程
xxx Parent1.0-SNAPSHOT
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)