maven基础常识功能

一、maven基础常识

Maven是一个Apache公司的开源项目,是项目构建工具。用来管理依赖。

1、Maven的好处、功能

  1.1  使用maven可以在项目中不用导入项目依赖的jar包,省去了下载和导入jar包的过程,使项目的大小等到了缩减。
 1.2 项目对象模型(maven)的Java项目对源代码、单元测试代码、资源、jar包等有规范的目录规划
 1.3  解决项目间的依赖关系、版本不一致、版本冲突问题

2、Maven好处如何实现

Maven通过一个仓库来存放jar包,在Maven项目中,不再需要导入这些jar包,只需要告诉项目所依赖的jar包的坐标,Maven就会自己将我们项目所需要的jar包给我们依赖进来。在maven中仓库有三种:

  (1) 本地仓库:本地仓库就在自己的机器上,我们可以在自己的机器上创建一个maven仓库,然后就需要的jar包导入进去,就可以在项目中引用。
      默认的仓库是在“用户家目录下的m2/ repository

  (2) 私服仓库:私服仓库在公司局域网内,公司可以在自己的局域网内创建一个仓库,将项目所需要的jar包存放在此仓库中,这样整个项目组就都可以使用此仓库提供的jar包,不再需要在自己本地创建仓库来保存jar包。
      减少在外部访问和下载的频率(使用了私服就减少了对中央仓库的访问)

  (3) 中央仓库:中央仓库是最大的一个仓库,由Apache组织来负责维护,几乎包括了现在所有的jar包(有一些涉及版权问题没有,比如:oracle数据库的连接jar包),但是中央仓库的访问速度非常慢。
  
       maven内置了远程公用仓库htp:// repo maven. org/maven2这个公共仓库是由 maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件,目前是以Java为主。工程需要的jar包如果本地仓库没有,默认从中央仓库下载。

3、Maven如何在仓库中查找jar包

Maven在仓库中查找jar包需要使用到jar的“坐标”信息,坐标信息由“公司名称+项目名称+版本信息”三部分构成。

4、Maven的两大核心

(1) 依赖管理:对项目需要使用到的jar包进行管理。

(2) 项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署。

5、应用场景(运维角度理解)

应用场景--从运维角度理解
1)原来项目中的a包必须手动复制、粘贴到wEB-NF/1ib项目下而借助 maven,可以将jar包仅仅保存在仓库中,有需要使用的工程只需要引用这个文件,并不需要重复复制到工程中
2)原来的项目中所需要的jar包都是提前下载好的,而 maven在联网状态下会自动下载所需要的jar包。首先在本地仓库中找,找不到就在网上进行下载
3)原来的项目中一个jar包所依赖的其他jar包必须手动导进来而 maven会自动将被依赖的jar包导进来

6、pom.xml配置文件详解

目录结构
目录说明
/ 项目的根目录存在pom.xm1和所有的子目录
/src/main/resources项目的资源,比如说 property文件,sprIngmvc. Xml
/src/test/java项目的测试类,比如说 Junit代码
/sre/test/ resources测试用例用的资源
/src/main/webapp/WEB-INE   web应用文件目录,比如存放web.xm1、本地图片、jsp视图页面
/ target打包输出目录,如打包好的jar或war文件
/target/ classes编译输出目录用于保存输出的 class文件
/target/test- classes测试编译输出目录


project:根,这是对Projrct添加一些根元素的约束
modelversion:指定当前maven模型的版本号
>packaging:指定生成的格式(jar/war/rar/pom/ear)
parent标签:指定父级pom文件引用(继承)
properties:定义配置属性、约定开发规范
dependenies标签:指定开发构建(jar包)
>grouopId:应该是公司名或者组织名。一般来说 groupID有三个部分组成,每个部分之间以“."分隔,第一部分是项目的用途,比如用于商业的就是com用于非商业盈利性组织的就是org,第二部分是公司名,比如tentxun/ baidu/ alibaba,第三部分是你的项目名
> artifactld:可以认为是 maven构建的项目名,比如你的项目中有子项目,就可以使用项目名-子项目的命名方式
version:版本号, SNAPSHO意为快照,说明该项目还在开发中,是不稳定的版本

二、安装maven

1、安装maven需要安装Java环境
2、开始安装maven

[root@localhost ~]# tar -zxf apache-maven-3.6.0-bin.tar.gz 
[root@localhost ~]# mv apache-maven-3.6.0 /usr/local/maven
[root@localhost ~]# echo 'export PATH=$PATH:/usr/local/maven/bin' >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T14:41:47-04:00)
Maven home: /usr/local/maven
Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

[root@localhost ~]# mkdir /tmp/testdir
[root@localhost ~]# cd /tmp/testdir/
[root@localhost testdir]# mvn archetype:generate -DgroupId=com.kgc.kgcapp -DartifactId=kgcapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

意思就是我们通过archetype插件创建一个webapp项目,项目的groupId是com.kgc.kgcapp,项目id是webAppDemo.使用的项目archetype是maven-archetype-quickstart。也就是一个java 项目。interactiveMode= false,代表在执行过程中,用户不能进行输入操作。默认是true,需要用户进行操作。
在这里插入图片描述

命令含义
archetype插件名称、类型
generate创建、生成一个项目
-DgroupId名称
-DartifactId项目名称
-DarchetypeArtifactId项目框架
-DinteractiveMode交互模式false不开启,true开启

三、maven常用命令

使用maven命令需要到项目根目录下使用
maven命令有声明周期,如果执行后面的命令,它会把前面的命令自动执行一遍。

命令含义
mvn compile编译类文件
mvn package把项目打包防止target/目录下
mvn test测试代码
mvn clean清理执行后target目录没有
mvn install把生成的项目上传到本地仓库
mvn deploy上传到私服
mvn clean packeage先清理在打包
mvn clean install先清理在上传

四、镜像加速

[root@localhost ~]# vim /usr/local/maven/conf/settings.xml 
159     <mirror>
160       <id>aliyun</id>
161       <name>aliyun-maven</name>
162       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
163       <mirrorOf>central</mirrorOf>
164     </mirror>
165   </mirrors>


五、上传项目

[root@localhost kgcapp]# mvn install              
[root@localhost kgcapp]# cd /root/.m2/repository/com/kgc/kgcapp/kgcapp/1.0-SNAPSHOT/
[root@localhost 1.0-SNAPSHOT]# ls
kgcapp-1.0-SNAPSHOT.jar  kgcapp-1.0-SNAPSHOT.pom  maven-metadata-local.xml  _remote.repositories
[root@localhost 1.0-SNAPSHOT]# java -cp kgcapp-1.0-SNAPSHOT.jar com.kgc.kgcapp.App
Hello World!

六、构建maven项目报错问题

解决构建maven项目中报错:Failed to execute goal org.apache.maven.plugins:maven-archetype-plugi
在这里插入图片描述

1.首先进入仓库下面repository\org\apache\maven\plugins这个目录

2.删除目录下的maven-archetype-plugin文件夹

3.重新加载

[root@localhost testdir]# mvn archetype:generate -DgroupId=com.kgc.kgcweb -DartifactId=kgcweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

[root@localhost testdir]# cd kgcweb/
[root@localhost kgcweb]# ls
pom.xml  src
[root@localhost kgcweb]# mvn compile



[root@localhost ~]# yum -y update lrzsz

部署第三方
在这里插入图片描述

maven

[root@localhost ~]# vim /usr/local/maven/conf/settings.xml 
258     <profile>
259       <id>kgcconf</id>
260       <repositories>
261 加入
262         <repository>
263           <id>3rd</id>
264           <url>http://192.168.1.5:8081/repository/3rd/</url>
265         </reposotory>
266 加入
267 
268         <repository>


   <id>3rd</id>
      <username>mario</username>
      <password>admin123</password>
    </server>
    <server>
      <id>nexus</id>
      <username>mario</username>
      <password>admin123</password>
    </server>
  </servers>

[root@localhost ~]# mvn deploy:deploy-file -DgroupId=com.aliyun.oss -DartifactId=aliyun-sdk-oss -Dversion=2.6.1 -Dpackaging=jar -Dfile=/root/aliyun-sdk-oss-2.6.1.jar -Durl=http://192.168.1.5:8081/repository/3rd/ -DrepositoryId=3rd


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值