Maven学习心得(一)

Maven学习心得(一)

通过今天实训,我初步了解了Maven项目的目录结构和其开发优势。

maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具,可以帮助我们更有效的管理项目,极大可能的避免因运行环境不同导致的项目不能运行的问题。

maven文件目录
bin: mvn运行的一些脚本,m2.conf 配置文件
boot: 类加载器
conf :配置文件
lib :mvn运行时类库
Maven目录结构

src
-main
-java
-package(自定义的包)
-test (用于测试)
-java
-package
resource (资源文件)

创建maven项目目录
用archetype插件来创自动建目录,有两种方式

mvn arcgetype:generate 按照提示里创建
mvn archetype:generate -DgruopId =xx -DartifactedId=xx -Dversion=xx -Dpackage=xx 一次性创建
groupId:一般为组织名,公司名网址的反写+项目名

artifactId:项目名-模块名

maven中的坐标和仓库
坐标:所有构件都通过坐标唯一确定位置

groupId artifactId 和 version组成坐标,在项目里建立包的时候,包名应该与groupId和artifactId相吻合

仓库

本地仓库
远程仓库 :本地找不到会从远程仓库中找,如果远程仓库没有的话则会报错 http://search.maven.org
镜像仓库:外网无法访问时使用,maven-conf–>settings

mirrorOf表示对哪个仓库进行镜像,比如对central进行镜像,那么所有对central仓库的访问都会转到url的地址中,也可以使用*进行通配操作
仓库位置:默认是在用户目录的(user)下的.m2文件夹中(windows下),修改settings中的localRespository即可

maven的生命周期和插件
完整项目的构建过程包括:清理,编译,测试,打包,继承测试,验证,部署

maven生命周期包括 clean ,compile ,test,package,install操作 (package的时候test和compile会自动进行),执行声明周期的某个阶段时,前面的阶段会被依次执行,主要分为以下三个主要的步骤:

clean 清理项目:pre-clean执行清理前的工作==>clean清理上一次构建生成的所有文件=>post-clean执行清理后的文件

default 构建项目:最核心的,compile test package install

site 生成项目站点:pre-site 在生成项目站点前要完成的工作=>site生成项目的站点文档=>post-site在生成项目站点后要完成的工作=>site-deploy发布生成的站点到服务器上

常用命令
mvn -v 查看版本

mvn compile 编译

mvn test 测试

mvn package 打包

mvn clean 删除上次编译字节码文件

maven install 安装jar包到本地仓库中

GroupID是项目组织唯一的标识符, 比如我的项目叫test001 那么GroupID应该是 com.lixiaoming.test001 域名.公司名.项目名

ArtifactID就是项目的唯一的标识符, 一般是 项目名-xxx 比如test001-model

在pom中配置依赖时,GroupID一般为组织名(比如org.apache.spark),ArtifatID一般为包名

非编译器环境下建立mvn项目

目录结构如上所示,根目录下有src和xml文件,src下要有main和test文件夹,各自文件夹下的包结构要规范

配置完后,在项目目录下进行编译(mvn compile),然后测试(mvn test)(测试部分的代码应该是没有被mvn compile编译的,当使用mvn test的时候才进行编译),最后打包(mvn package)

compile:在测试编译运行的时候都有效
provided:在编译和测试的时候有效
runtime:在测试和运行时有效
test:只在测试的时候有效
system:在编译和测试时有效,与本地系统(路径)相关
import:表示从其他pom中继承过来的依赖,比如
pom的依赖和依赖冲突
依赖:
在一个项目中的dependency中田添加另一个项目的坐标即可,一般会产生传递依赖,如果不需要传递依赖,就要配置exclusion标签,加坐标即可(被排除的包)
依赖冲突:
原则:
1.短路优先:优先解析路径短的版本
1.A–>B–>C–>x
2.A–>D–>X
2.路径相同长度时,谁先声明谁优先

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值