什么是Maven?
maven是一个软件工程(Software Project)管理工具。 对于maven来说,一个软件工程的唯一标识是由开发者(groupId)、生成物(artifactId)、版本(version) 共同决定的。
每个工程都有一个打包类型,可以是jar, war, ear 或 pom。打包类型决定了工程最终产物的类型。 其中pom类型用于构件多模块工程。
Maven打包过程(顺序)
clean清空之前生成的文件
IDE内编译该程序 (并测试可成功运行)-- 必须生成class文件!(等待被打包)
确定文件pom.xml中的各项配置
Maven刷新:Reimport All Maven Projects
Maven自动打包:Install或package
注意:如果maven打包时没有进行编译,只是将程序之前运行产生的字节码文件直接打包,所以造成无论如何都没有发生改变,当我在本地编译后重新上传后,终于成功运行了
maven依赖关系中Scope的作用
Dependency Scope
在POM 4中,中还引入了,它主要管理依赖的部署。目前可以使用5个值:
- compile,缺省值,适用于所有阶段,会随着项目一起发布。
- provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
- runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
- test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
- system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。