咕泡maven笔记

认识maven

  • 约定优于配置
  • 简单
  • 测试支持
  • 构建简单
  • 插件丰富
  • 持续集成

配置setting.xml

  • 配置国内镜像
       <mirror>  
		  <id>alimaven</id>  
		  <name>aliyun maven</name>  
		  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
		  <mirrorOf>central</mirrorOf>          
		</mirror> 
		<mirror>
			<id>ui</id>
			<mirrorOf>central</mirrorOf>
			<name>Human Readable Name for this Mirror.</name>
			<url>http://uk.maven.org/maven2/</url>
		</mirror>
		<mirror>
            <id>osc</id>
            <mirrorOf>central</mirrorOf>
            <url>http://maven.oschina.net/content/groups/public/</url>
        </mirror>
        <mirror>
            <id>osc_thirdparty</id>
            <mirrorOf>thirdparty</mirrorOf>
            <url>http://maven.oschina.net/content/repositories/thirdparty/</url>
        </mirror>
  • 加载顺序(后加载会覆盖前面的设置)

659d2929ebef693d2ac674cf82903024075.jpg

pom.xml

  • groupId   com.gupaoedu
  • packaging  打包方式 默认是jar
  • version 版本号
  • artfactId 功能命名
  • dependencyManagement
    • 最好只出现在父pom
    • 统一版本号
    • dependency声明 (POM里用到再引)
  • Dependency
    • Type  默认jar
  • Scope(使用场景)
    • compile  编译 默认,都用本范围,包会打的很大)  例如spring-core
    • test 测试
    • provided编译不会打包  例如 servlet
    • runtime运行时才有效,编译时不用的包(就是不需要编译的包) 例如JDBC驱动实现
    • system 本地一些jar,不在maven的中央仓库  例如短信jar
    • 依赖传递pom依赖于父pom,如果父pom已经引用了某个jar包,子pom不需要再引用
      • 查看pom   tree命令:  mvn dependency:tree > d.txt

9cdb2274ffa2a6cb88c4e970c26bda12d7f.jpg

依赖仲裁

  • 最短路径原则依赖节点数少的
  • 加载先后原则使用后加载,书写顺序

使用versions-maven-plugin插件统一修改多个moudle版本号

exclusions

  • 排除包(解决冲突的时候使用,排除掉冲突的jar)

​​​​​​​生命周期

  • lifecycle,包含多个phase,包含多个goals
    • ​​​​​​​A Build Lifecycle is Made Up of Phases阶段
    • A Build Phase is Made Up of Plugin Goals我们写的插件都是goals,需要挂在mavenPhase 下,比如packageinstall ​​​​​​​
  • 如下所示,goals挂在 install上面

fc11231bf5566580bca0b625c8b6ca1658d.jpg

  • Maven做的任何事情都可以是一个plugin
  • 每一个阶段都会运行之前的所有阶段

70aa2048455aa55105f4dfcf49699455951.jpg

版本管理

  • 1.0-SNAPSHOT(测试版本,远程SNAPSHOT变化,本地仓库不会随时刷新,先删除本地,再去拉一次,或如下 -U强拉)
  • mvn clean package -U (强制拉一次)
  • 主版本号.次版本号.增量版本号-<里程碑版本>
  • 1.0.0-RELAESE不要发布SNAPSHOT因为可以被替换,release版本,必须升级版本,不会覆盖

常用命令

  • Compile编译,存在于maven内置插件里面,默认就带的
  • clean    删除target/ (文件夹下的所有东西清理)
  • test       test case junit/testNG运行这俩相关的程序
  • package 打包(打包依据<packaging>pom</packaging>
  • install    把项目installlocal repo
  • deploy    发本地jar发布到remote

插件

594b8838d473c330225fd04c122edd4705e.jpg

maven插件官网  或者 mojo插件网站

  • findbugs 插件:静态代码检查
  • versions 统一升级版本号
    • ​​​​​​​mvn versions:set -DnewVersion=1.1
  • source插件 打包源代码
  • assembly 打包zipwarwith dependency这样所有用到的jar包都会打到你的包里面
  • tomcat7(maventomcat插件,不用在另外下载)

自定义插件

  • ​​​​​​​打包方式:<packaging>maven-plugin</packaging>

40736e72afe04fe74c31b5221f305a66da9.jpg

  • 可以采用命令行的形式将参数传入

f22b24a3e129bdfc21dcaeceadb931f6f47.jpg​​​​​​​

转载于:https://my.oschina.net/u/3847203/blog/1927405

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值