maven特点
- maven模型的java项目,对源代码、测试代码、资源、jar包有比较规范的目录规划
- maven可以解决项目之间的依赖关系,版本冲突的问题
- maven有一个合理的jar包管理机制
- maven可以解决jar包之间的依赖管理(maven的jar包相当于yum的rpm包)
maven目录规划
项目根目录:pom文件的存放位置 kgcweb.tar.gz src pom
项目文件存储的目录
src:存放项目的源代码(项目的主体代码和测试代码,项目资源)
target:存放项目编译输出的内容(class文件、jar包或者war包)
pom.xml:主要记录了项目的详细信息,包括依赖关系、打包的格式、项目名称、公司名称
project:项目的根目录元素约束
groupld:公司的名字,一般分为三部分组成(com,org、公司名字、项目名字) com.kgc.kgcweb
artifactid:项目的名字
packaging:该项目打包后会生成的包文件的格式
maven的仓库
- 本地仓库:默认情况下,什么都没有,存放下载到本地的jar包和资源位置--->用户家目录/.m2/repository/ 特点:在所有仓库中,优先级最高,如果需要jar包,首先看本地仓库有没有,本地仓库没有再说其他
- 远程仓库:除了本地仓库,其他的都叫远程仓库 * 中央仓库:maven的官方仓库,,如果maven不配置镜像,那么在本地仓库没有需要的jar包情况下,会直接去中央仓库下载,网络要流畅 * 第三仓库(私服):一般是企业或者学校搭建,供内部使用,私服存储了jar包之后,局域网之内的maven用户如果需要通过局域网传输,速度快,稳定,目前比较成熟的是:nexus
maven配置文件
安装目录:/usr/local/maven
配置文件:可能存在的两种地方
- 安装目录:/usr/local/maven/conf/settings.xml
- 本地仓库:settings.xml
区别:安装目录的配置文件成为全局配置
本地仓库的配置文件称为用户配置(本地仓库默认没有,可以复制)
如果二者同时存在,文件内容会被合并,并且,用户配置优先级更高
maven常用操作命令
# 必须要在项目根目录执行
[root@localhost kgcapp]# mvn compile # 编译
[root@localhost kgcapp]# mvn test # 测试编译
[root@localhost kgcapp]# mvn package # 打包
[root@localhost kgcapp]# mvn clean # 清理(清理编译输出目录。效果相当于:rm -rf target)
[root@localhost kgcapp]# mvn install # 上传包文件(把包上传到本地仓库)
[root@localhost kgcapp]# mvn deploy # 上传包文件(把包上传到私服)
[root@localhost kgcapp]# mvn clean package # 先清理后打包
[root@localhost kgcapp]# mvn clean install # 先清理后上传
maven命令的生命周期
install比较靠后,compile package靠前,使用mvn install 默认前面的都执行
maven的部署安装
安装JAVA环境
- 首先需要下载JDK安装包,并解压到/usr/local目录下
[root@localhost ~]# tar -zxf jdk-8u201-linux-x64.tar.gz -C /usr/local/
- 设置环境变量
[root@localhost ~]# vim /etc/profile
在末尾添加
export JAVA_HOME=/usr/local/jdk1.8.0_201/
export JRE_HOME=/usr/local/jdk1.8.0_201/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
使环境变量生效
[root@localhost ~]# source /etc/profile
添加软连接
[root@localhost ~]# ln -s /usr/local/jdk1.8.0_171/bin/java /usr/bin/java
检测java版本
[root@localhost ~]# java -version
安装maven
下载maven安装包,并解压到当前目录
[root@localhost ~]# tar -zxvf apache-maven-3.6.0-bin.tar.gz
然后将其移动到/usr/local/maven/目录下
[root@localhost ~]# mkdir /usr/local/maven
[root@localhost ~]# mv apache-maven-3.6.0/* /usr/local/maven/
查看maven信息(出现版本信息,说明maven环境安装成功)
[root@localhost ~]# mvn -v
创建maven项目(慢慢等待下载....最后用时29.40分钟 :hu: )
[root@localhost ~]# mvn archetype:generate -DgroupId=com.kgcapp -DartifactId=kgcapp -DarchetypeArtifactId=maven-archetype-quickstart
完成以后会在/root目录下创建kgcapp项目文件夹(maven下面的操作必须在此文件夹下进行)
[root@localhost ~]# cd kgcapp/
[root@localhost kgcapp]# ls
pom.xml src
编译 (速度太慢,先配置阿里云镜像,再回来编译:yinxian:)
[root@localhost kgcapp]# mvn compile
配置阿里云镜像
[root@localhost kgcapp]# vim /usr/local/maven/conf/settings.xml
# 在其中增加以下代码
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
测试编译(速度明显提升)
[root@localhost kgcapp]# mvn test
部署web项目
[root@localhost kgcapp]# mvn archetype:generate -DgroupsId=com.kgc.kgcweb -D artifactId=kgcweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
[root@localhost kgcapp]# mvn clean package
安装tomcat
首先还是先下载Tomcat安装包,并解压到/usr/local目录下
[root@localhost ~]# tar -zxf apache-tomcat-8.5.35.tar.gz -C /usr/local/
启动Tomcat
[root@localhost ~]# cd /usr/local/
[root@localhost local]# cp -r apache-tomcat-8.5.35/ ./tomcat
[root@localhost local]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk1.8.0_201/jre
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost ~]# firefox 192.168.1.11:8080
将项目解压到tomcat默认前端文件目录
[root@localhost kgcapp]# rm -rf /usr/local/tomcat/webapps/ROOT/* # 首先删除tomcat默认的前端文件
[root@localhost kgcapp]# unzip target/kgcweb.war -d /usr/local/tomcat/webapps/ROOT/
访问测试
[root@localhost kgcapp]# firefox 192.168.1.11:8080
# 或者
[root@localhost kgcapp]# curl 192.168.1.11:8080
也可以安装elinks访问测试
[root@localhost kgcapp]# yum -y install elinks
[root@localhost kgcapp]#elinks 192.168.1.11:8080