maven学习笔记

1、依赖范围:compile,test,provided,runtime,system
2、传递性依赖:A依赖于B,B依赖于C,则A间接依赖于C,A的依赖范围受B和C影响
3、依赖调节原则:当依赖jar包产生重复冲突时,下载jar包路径最近者优先,第一声明者优先
4、可选依赖不会被传递,<optional>true</optional>
5、面向对象设计:单一职责性原则,一个类应该只有一项职责,而不是糅合多个功能;规划maven项目也是如此
6、排除依赖<exclusions><exclusions>...</exclusion></exclusions>
7、maven属性归类依赖:
<properties><springframework.version>2.5.6</springframework.version></properties>
<dependencies>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>${springframework.version}</version>
    </dependency>
</dependencies>
8、maven仓库布局路径:groupId/artifactId/version/artifactId-version.packaging
9、maven仓库分为本地仓库和远程仓库;远程仓库主要有maven核心自带的中央仓库,以及私有仓库服务器(私服);可以有多个远程仓库,但是只有一个本地仓库;releases和snapshots元素设置发布版构件和快照版构件的下载;设置本地仓库地址使用localRepository元素,设置远程仓库地址:
    <repositories>
        <repository>
        ...
        </repository>
    </repositories>
10、默认仓库目录在.m2/repository下,配置文件settings.xml;
远程仓库认证信息放在settings.xml里面:
 <servers>    
    <server>
      <id>...</id>
      <username>...</username>
      <password>...</password>
    </server>    
 </servers>
11、maven生命周期:clean、default和site
12、maven生命周期和插件互相绑定,完成具体构建任务。maven通过绑定插件完成实际任务。插件仓库:
<pluginRepositories>
    <pluginRepository>
    <id><name><url><layout>...
    </pluginRepository>
</pluginRepositories>
13、maven的聚合特性是为了把项目多个模块一起构建,maven的继承特性则是为了抽取模块中相同的依赖和插件等配置。
聚合中父模块依赖:
<modules>
    <module>account-email</module>
    <module>account-persist</module>
</modules>
父模块只有pom文件和目录结构,没有src等文件结构;
聚合可以使用父子关系目录结构,平行目录结构;
继承是指子模块继承父模块依赖等配置。
<parent>
    <groupId><artifactId><version><relativePath>...
</parent>
14、依赖管理
父模块中:
<dependencyManagement>
    <dependencies>...</dependencies>
</dependencyManagement>
可以在父模块中声明依赖版本,子模块中省略版本就可以引入相关依赖,不添加父模块中依赖就不会引入多余依赖。
15、插件管理
父模块中:
<pluginManagement>
    <plugins>
    ...
    </plugin>
</pluginManagement>
16、maven默认的清除构建目录,创建目录,编译代码,复制依赖到目标目录,最后打包流程。源码默认目录为src/main/java,编译输出target/classes/,打包方式为jar,包输出目录为target//
17、反应堆:模块构建顺序
18、maven使用约定优于配置
19、Nexus:Maven仓库管理软件(可以下载war包在tomcat里面运行,自己搭建私服)
Nexus内置仓库:group(仓库组),hosted(宿主),proxy(代理)和virtual(虚拟)
使用镜像让maven只使用私服下载依赖包
 <mirrors>
    <mirror>
        <id>...</id>
        <name>...</name>
        <url>...</url>
        <mirrorOf>*</mirrorOf>
    </mirror>    
  </mirrors>
20、使用maven进行测试:
maven-surefire-plugin测试插件
动态指定运行单元测试的类:$mvn test -Dtest=RandomTest
21、生成测试报告:maven有基本的测试报告,TestNG框架测试报告,JUnit框架也可以打印出测试报告
22、重用测试代码:maven-jar-plugin插件打包测试代码重复使用
23、使用jetty-maven-plugin进行单元测试
24、插件实现自动化热部署
25、Cargo实现自动化部署,可以部署到本地web容器和远程web容器

转载于:https://www.cnblogs.com/agnesFlower/p/10564516.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值