maven
1.maven是什么
一个跨平台的项目管理工具,主要服务于 基于Java平台的项目构建、依赖管理和项目信息管理。 跨平台(window/linux/mac)使用相同的命令
2.maven能做什么?
构建项目 依赖工具:第三方开源库jar的增多,版本冲突、依赖臃肿等问题增多,maven可以有效的解决依赖 maven仓库: 中央仓库:maven为java开发者提供了一个免费的中央仓库,在其中可以找到绝大多数的流行开源框架。 本地仓库:本地jar文件所在位置 其他仓库:提供jar访问下载的网上仓库
3.maven如何使用
maven安装
1)jdk1.7以上,要求必须配置JAVA_HOME目录 2)maven安装包, 解压即可 3)配置环境变量 变量名:M2_HOME 变量值:D:\DeveTool\maven\apache-maven-3.3.9 Path配置:%M2_HOME%\bin 4)检查是否配置成功,mvn -v
maven仓库修改
maven的本地仓库为默认存在C盘目录下,可以指定本地仓库存储路径 1)在maven的安装目录的conf目录下,找到setting.xml文件 2)修改setting.xml文件,添加<localRepository>标签 <localRepository>D:\DeveTool\maven\repo</localRepository> 3)修改setting.xml文件,在 <mirrors>里添加阿里云镜像标签 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> 4)复制setting.xml到本地仓库目录下(D:\DeveTool\maven\repo) 5)eclipse配置maven,window-》preferences->maven->user settings maven->installnations ->add
maven常用命令
clean:清除目标目录中的生成结果
install:在本地库中安装jar
package:根据项目生成jar文件
4.pom.xml
maven的一大功能就是管理项目依赖(jar),为了自动化解析,maven必须将他们唯一标识(即坐标)。
世界上任何一个构件(jar等)都可以使用maven坐标作为唯一标识,maven坐标元素包括groupId、artifactId、version、packaging、classifier。只要我们提供正确的坐标元素,maven就能找到对应的构件。
dependencies:可以包含一个或多个dependency元素,用来声明依赖。 groupId:包名,必选 artifactId:项目名,必选 version:项目所处版本,必选 packaging:maven项目的打包方式(jar、war),可选 scope:依赖的范围,用来控制依赖于三种classpath(编译、测试、运行)的关系 依赖范围: compile:默认值,编译依赖范围,对于编译、测试、运行三种classpath都有效 test:测试依赖范围,只对测试classpath provided:已提供依赖范围,对编译和测试classpath有效,运行时无效 runtime:运行时依赖范围,测试和运行有效,编译时无效 system:系统依赖范围,与provided依赖范围相同,但是使用时必须通过systemPath显示 指定依赖文件路径。与maven仓库没关系,与本机系统绑定,不可移植 import:导入依赖范围,不会对三种classpath产生实际影响
5.eclipse+maven
eclipse配置maven
1)配置:window --> preferences --> maven --> user settings
2)选择:maven --> installations --> add
eclipse创建maven项目
File –> New –> Othe –> Maven –> Maven Project –> Next –> Next ↓
–> 选择maven-archetype-webapp –> Next > –> 输入坐标 –> Finish
配置tomcat
显示视图server窗口,右键new --> server --> tomcat --> next --> Browse(选择本地tomcat) --> Finish
运行maven项目
直接启动tomcat
eclipse打包maven项目
eclipse:Run As --> Maven install
生成的war包,在maven仓库中(D:\DeveTool\maven\repo\cn\bdqn\demo\0.0.1-SNAPSHOT\demo-0.0.1-SNAPSHOT.war)
打包方式 **JAR** JAR(Java Archive [ˈɑːrkaɪv] ,Java 归档文件):JAR 文件格式以流行的 ZIP 文件格式为基础,它可将许多文件组合成一个压缩文件, 而且还用于部署和封装库**、**组件和插件程序 。 简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。 WAR war是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在webapps目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。 简单来说,war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。
6.IDEA+maven
idea配置maven
file --> settings --> Builde,Execution,Deployment --> Build Tools --> Maven --> Maven home directory(选择maven安装路径) --> User setting files (选择settings.xml文件)。
maven打包SpringBoot项目
1)在pom.xml中添加<packaging>war</packaging>
2)pom.xml中继续加入以下代码:该代码用于spring boot中内嵌的tomcat包依赖排除,不然会产生冲突
<exclusions> //exclusions:[ɪkˈskluːʒn],除外、排除 <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions>3)重写启动类,让启动类继承SpringBootSerletInitializer,重写 configure函数
public class SmbmsApplication extends SpringBootServletInitializer{ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SmbmsApplication.class); } public static void main(String[] args) { SpringApplication.run(SmbmsApplication.class, args); } }4)打开视图maven project
clean:清除目标目录中的生成结果
install:在本地库maven库中安装jar
package:根据项目生成jar文件
5)注意: tomcat版本需要为8以上,tomcat版本若果有点儿旧的话,可能war包会不起作用