1,作用
maven可以管理jar文件,自动下载jar和其他文档,源代码;
管理jar包依赖;
编译程序,把java文件编译成字节码文件(class);
测试代码;
打包文件,形成jar/war;
部署项目;
maven支持的构建包括:清理,编译,测试,运行,打包,部署;
打包:把所有的class文件,配置文件等资源文件放到一个压缩文件中,通常java程序,压缩文件是jar包;对于web应用,压缩文件是war包;
2,maven核心概念
(1)POM:项目对象模型,可以控制构建项目的过程。
(2)约定的目录结构
(3)坐标
(4)依赖管理
(5)仓库管理
(6)生命周期:maven构建项目的构成
(7)插件和目标:执行maven构架的时候用的工具
3,安装
MAVEN依赖于java,需要指定JAVA_HOME
验证:mvn -v
验证 cd "D:\Program Files (x86)\JetBrains\IdeaWorkspace"
2,测试
创建测试类HelloMaven.java
执行maven编译命令:mvn compile,编译src/main目录下的所有java文件
默认放到中央仓库,本机默认use\.m2\repository,可以修改
若失败:mvn clean
快速启动cmd技巧,在目录输入cmd,按回车
3,仓库
本机仓库
设置本机仓库位置
1,修改maven配置文件,maven安装目录/conf/setting.xml;
修改
<localRepository>D:\Program Files (x86)\JetBrains\maven\repository</localRepositor
远程仓库
中央仓库:最权威,中央仓库地址:
中央仓库镜像:中央仓库的镜像
私服:公司内部使用
仓库的使用步骤:maven首先查:本地仓库->私服->中央仓库镜像->中央仓库
4,POM项目对象模型
pom.xml
(1)mavenVersion:模型的版本,maven2/3为4.0.0
(2)groupId:组织Id,一般为公司域名倒写+项目名,比如:com.baidu.grp.appoIo
artifactId:项目名称,一般以-拼接,比如:grp-appoIo
version:项目版本号,如果项目还在开发,采用不稳定版,版本号后带-SNAPSHOT
version采用三维数字表示,例如:1.0.0
坐标:groupId+artifactId+verison
<groupId>com.example.demo</groupId>
<artifactId>demo</artifactId>
<version>1.0.0-SNAPSHOT</version>
maven中央仓库:
(3)packaging:打包后压缩文件的扩展名,默认是jar,web应用是war
(4)<dependencies>:依赖,相当于java代码中import<dependency>
(5)<properties>:设置属性
(6)<build>:表示与构建相关的配置,例如编译插件的jdk版本
5,Maven生命周期,常用命令
maven生命周期,包括:清理,编译,测试,报告,打包,安装,部署
maven的命令,maven独立使用,通过命令,完成maven的声明周期的执行
maven的插件:maven命令执行时,真正完成功能的是插件,插件就是一些jar文件,一些类
(1)mvn clean:清理(会删除原来编译和测试的目录,即target目录,但是已经install到仓库的不会删除)
(2)mvn compile:编译主程序(会在当前目录下生成一个target,里面存在编译主程序之后生成的字节码文件)
拷贝resource到\target\classes目录下
(3)mvn test-compile:编译测试程序
(4)mvn test :测试(会生成surefire-reports,保存测试结果)
(5)mvn package:打包主程序(会编译,编译测试,测试,并按照pom配置把主程序打包成jar或者war包)
(6)mvn install:安装主程序(会把工程打包,并且按照工程的坐标保存到本地仓库中)
(7)mvn deploy:部署主程序(会把工程打包,并保存到本地仓库,同时会保存到私服中,还会自动把项目部署到web容器中)
执行以上命令必须进入pom所在的目录
6,idea中使用maven
idea自带的不方便,我们要替换idea的配置信息
settting:当前项目配置
runne:添加:
每次创建项目时, IDEA 要使用插件进行创建,这些插件当你创建新的项目时,它每次都会去中央仓库下载,这样使得创建比较慢。应该创建时,让它找本地仓库中的插件进行创建项目。
-DarchetypeCatalog=internal
archetypeCatalog=internal, maven创建时默认下载网络模板,大约7M,此配置跳过下载,从本地加载
outer Settings:以后项目配置 同settings
7,使用模板创建项目
先创建一个空项目,再创建New Module,使用模板
maven-archetype-quikstart(简单的java项目)
maven-archetype-webapp(web工程)
1,tomcat远程配置
首先修改linux的tomcat配置:
1,首先进入bin目录
2,新建setenv.sh脚本,在文件中放入下面这句:
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote= -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.145.130"
配置内容来源于官方文档Server tab for a remote configuration
Run/Debug Configuration: Tomcat Server | IntelliJ IDEA
把最后的hostname改为自己的服务器IP,我的是192.168.145.130。
3,给setenv.sh权限 :chmod 750 setenv.sh
4,配置完成之后,直接在bin目录下./startup.sh,启动tomcat,然后在开发机上打开浏览器,输入http://192.168.145.130:8080,可以看到熟悉的tomcat界面。
sftp设置:
指定打包项目
应用名字:
/maven_test
测试:
http://192.168.145.130:8080/maven_test/
另一种方式:将xxx.war包修改为myweb.war,然后直接放到webapps目录下
然后访问
http://192.168.145.130:8080/myweb/
8,Maven依赖范围
test,provided,compile
test:只有测试阶段生效(生成的jar包中不包括)
provided:编译,测试阶段生效(生成的jar包中不包括)
compile:编译,测试,打包,部署阶段生效
9,maven常用属性
(1)maven的属性设置
</properties>设置maven的常用属性
(2)maven的全局变量
${}
(3)资源插件
如果需要把src目录下的文件包放到target/classes目录,作为jar包的一部分,需指定资源文件位置,如下:
指定其他文件进行打包到target/classes目录下
<build>
<resources>
<resource>
<!--所在的目录-->
<directory>src/main/java</directory>
<!--目录下的properties,xml文件会扫描到-->
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!--不启用过滤,*.properties已经起到过滤作用了-->
<filtering>false</filtering>
</resource>
</resources>
</build>