Maven学习总结

为什么要用maven

1、都是同样的代码,为什么在我的机器上可以编译执行,而在他的机器上就不行?
2、为什么在我的机器上可以正常打包,而配置管理员却打不出来?
3、项目组加入了新的人员,我要给他说明编译环境如何设置,但是让我挠头的是,有些细节我也记不清楚了。
4、我的项目依赖一些jar包,我应该把他们放哪里?放源码库里?
5、这是我开发的第二个项目,还是需要上面的那些jar包,再把它们复制到我当前项目的svn库里吧
6、现在是第三次,再复制一次吧    ----- 这样真的好吗?
7、我写了一个数据库相关的通用类,并且推荐给了其他项目组,现在已经有五个项目组在使用它了,今天我发现了一个bug,并修正了它,我会把jar包通过邮件发给其他项目组
-----这不是一个好的分发机制,太多的环节可能导致出现bug
8、项目进入测试阶段,每天都要向测试服务器部署一版。每次都手动部署,太麻烦了。

什么是maven

Maven是基于POM(工程对象模型),通过一小段描述来对项目的代码、报告、文件进管理的工具。

Maven是一个跨平台的项目管理工具它是使用java开发的,它要依赖于jdk1.6及以上

Maven主要有两大功能:管理依赖、项目构建。

依赖指的就是jar


安装

下载   解压   配置环境变量   

测试maven是否安装成功在系统命令行中执行命令:mvn –v
设置局部配置文件 settings.xml  用户仓库的配置 repository
eclipse 插件复制到dropins里 在eclipse的Maven设置里设置安装目录,settings.xml 用户仓库为settings.xml里设置


命令

compile 编译 clean 删除target目录  test 完成单元测试   package 打包,jar/war
install 完成将打好的jar包放到本地仓库,方便其它工程引用
clean 可与上面的组合使用


生命周期

三个  Clean Lifecycle 构建之前的清理操作;
 Default Lifecycle;核心 编译,测试,打包,部署
 Site Lifecycle  生成项目报告,站点,发布站点
声明周期中一个的步骤执行时一定会执行比他早的步骤 例如install执行时,会执行compile test package


创建

创建maven工程
next(可创建简单工程)    next

进入New Maven Project界面 
Group id  组织名,公司名  Artifact id 工程名,项目名 Version 版本信息 package 工程中的包名 可不填
 如果在第一个选择界面的上面打勾 可以在下面选择继承的父类 jar为普通项目 war为web项目 pom作为父类和聚合类时选择

重点文件 pom.xml  

maven核心概念
  坐标
  groupId:定义当前Maven组织名称
artifactId:定义实际项目名称
version: 定义当前项目的当前版本
   依赖  <dependens>标签 三个重要标签 g a v  g a为jar包名称 v为版本号
也可依赖其它maven项目 同样的标签 g a v 分别对应依赖maven项目的 g a v ctrl可点进去
依赖可多重依赖 , 按照就近原则依赖  optional默认为false 为true时不向下传递
exclusions两个子标签 g a 排除远程依赖 g a 分别为要排除依赖maven的 g a
  插件  <build><plugins><plugin> g  a <configuration> 具体的其它标签
  插件可以使编译环境改为jdk7 tomcat改为7 运行时为tomcat7:run
  继承  消除重复,把相同配置提取出来  父工程统一管理版本号
父类提供规范 并没有其它东西 只有pom.xml 构建项目时选择在 jar war pom中选择pom
子类两种方式继承 新项目可在构建时的下面继承,旧项目在pom.xml上面添加一个<parent>节点 并填写g a v
父类的pom.xml中的<dependens>所依赖的jar包等子类会直接继承
如果是<dependenceManager>  子类不会直接依赖 需要自己写<dependence>节点 但是只需要写 g a不需要v v为父 类所填写
父类依赖中的gav v的值可以提出来 作<properties>节点 子标签名随意命名,如<a.version>值为版本号
取值时在v的值里填写${a.version}就行
  聚合  创建maven项目 选择pom (可继承父工程)并选中创建持久层 业务层 表现层
         穿件项目时选择maven model 不是project  持久层,业务层可以直接确认
         表现层需要next后在jar war pom中选择war


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值