前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >maven入坑指南

maven入坑指南

作者头像
半条命专刊
发布2020-09-14 14:38:53
6170
发布2020-09-14 14:38:53
举报
文章被收录于专栏:程序猿那点儿事儿

maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目。主要用于项目构建,依赖管理,项目信息管理。

对于程序猿来讲,maven再熟悉不过了,关于maven的文章也很多,但是都没有抓住重点,那么你有福利了,来听我将maven的故事,保准你一听就懂,一看就会,在学习maven的道路上畅通无阻。

你可以把maven当做一个超市,超市里有柴米油盐酱醋茶等等很多材料,你需要哪个材料只需要通过一定的手段拿即可。对于刚入门的程序猿来讲,他(她)会认为是这样的:1、maven就是将jar包存放到maven本地仓库,本地仓库文件夹下的.m2文件夹下。2、pom.xml配置jar在maven本地仓库的坐标后jar会上传到中央仓库。这样理解也对,但不够深入。

”小朋友,你是不是 有很多问号?“本次是教大家入门,想深入了解maven,敬请等待下次分享。

一、maven的有优点与弊端

优缺点是我从网上摘抄的,没毛病。

优点如下:

1、简化了项目依赖管理。

2、易于上手,对于新手可能一个"mvn clean package"命令就可能满足他的工作。

3、便于与持续集成工具(jenkins)整合。

4、便于项目升级,无论是项目本身升级还是项目使用的依赖升级。

5、有助于多模块项目的开发,一个模块开发好后,发布到仓库,依赖该模块时可以直接从仓库更新,而不用自己去编译。

6、maven有很多插件,便于功能扩展,比如生产站点,自动发布版本等

缺点如下:

1、maven是一个庞大的构建系统,学习难度大

2、maven采用约定优于配置的策略(convention over configuration),虽然上手容易,但是一旦出了问题,难于调试。

3、当依赖很多时,m2eclipse 老是搞得Eclipse很卡。

4、中国的网络环境差,很多repository无法访问,比如google code, jboss 仓库无法访问等。

二、使用maven好处

1、 maven不仅是构建工具,它还是依赖管理工具和项目管理工具,提供了中央仓库(也可以是私有仓库),能够帮我们自动下载构件。

2、为了解决的依赖的增多,版本不一致,版本冲突,依赖臃肿等问题,它通过一个坐标系统来精确地定位每一个构件(artifact)。

3、还能帮助我们分散在各个角落的项目信息,包括项目描述,开发者列表,版本控制系统,许可证,缺陷管理系统地址。

4、maven还为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源软件。通过衍生工具(Nexus),我们还能对其进行快速搜索。

5、maven对于目录结构有要求,约定优于配置,项目间切换省学习成本。

三、教你快速入门

1、下载maven组件(最新版本:3.6.3)

地址:http://maven.apache.org/download.cgi

2、配置环境变量

网上有很多此类文章,在这里就不再过多讲解。推荐:https://www.cnblogs.com/chuhongyun/p/11419014.html

大多数jar包来自国外 使用maven默认配置下载很费劲,这个时候可以在maven的配置文件(maven/config/setting.xml)里面加入镜像,重新下载jar包,速度很快。

3、Idea配置maven

自动下载

4、项目中使用maven

5、查看是否从仓库下载

四、踩坑记录

1、引入pom.xml文件中的依赖性能比较卡、慢

将setting文件中的镜像仓库地址改成阿里的镜像仓库,具体操作自行google

2、使用阿里镜像仓库访问https问题

因为没有安全证书,所以需要忽略证书,只需要设置一下即可,如下:

-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true

五、maven常用的命令

1、创建maven普通项目

mvn archetype:create -DgroupId=packageName -DartifactId=projectName

2、创建Maven的Web项目

mvn archetype:create -DgroupId=packageName

-DartifactId=webappName

-DarchetypeArtifactId=maven-archetype-webapp

3、编译源代码

mvn compile

4、编译测试代码

mvn test-compile

5、编译测试代码

mvn test

6、打包

mvn package

7、清除产生的项目

mvn clean

8、生成eclipse、idea项目

mvn eclipse:eclipse

mvn idea:idea

9、查看当前项目已被解析的依赖

mvn dependency:list

10、上传到私服

mvn deploy

11、强制检查更新,由于快照版本的更新策略(一天更新几次、隔段时间更新一次)存在,如果想强制更新就会用到此命令

mvn clean install-U

12、源码打包

mvn source:jar

13、发布第三方Jar到本地库中

mvn install:install-file -DgroupId=xxx.xx.xxxx -DartifactId=xxx -Dversion=0.0.1 -Dpackaging=jar -Dfile=路径/xxx-0.0.1.jar

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿那点儿事儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档