黑马程序员技术交流社区

标题: 【广州校区】【原创】Maven高级总结和常见问题解析 [打印本页]

作者: 帅气de路人甲    时间: 2018-11-15 09:44
标题: 【广州校区】【原创】Maven高级总结和常见问题解析
【011】如何控制当前依赖是否向下传递?
答:
在依赖节点dependency中的<optional>可以控制当前的依赖是否向下传递;
默认位false,表示向下传递。如不需向下传递依赖,可修改配置为true

【012】如何排除依赖?
答:
可以在依赖节点中设置排除依赖节点:<exclusions>,然后再添加<exclusion>
<exclusion>里面包括的内容有:
     【注意】不需要添加版本,直接类别排除

【013】Maven的生命周期如何?
答:
Maven的生命周期是为了对所有的构建过程进行抽象和统一,包括:项目清理、初始化、编译、测试、打包、部署等几乎所有的构建步骤。
Maven有3套相互独立的生命周期,分别是:
【注意】
它们都是相互独立的,可以仅调用clean来清理工作目录,也可以仅调用site来生成站点,也可以运行 mvn clean install site 同时运行这3套生命周期
在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,这是Maven很重要的一个规则,可以大大简化命令行的输入

【014】Maven中什么是插件目标
答:
Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的,每个插件都能实现多个功能,每个功能就是一个插件目标。
Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务,例如:
compile就是插件maven-compiler-plugin的一个插件目标

【015】Maven的继承有什么用?
答:
继承是为了消除重复,方便统一管理项目的依赖版本问题,进行版本控制
它可以把pom中很多相同的配置提取出来,如:groupId、version等。在使用时子工程直接继承父工程的依赖版本号,子工程不需指定具体版本号
【注意】继承时父工程的pom.xml打包方式必须设置为pom的方式

【016】Maven的聚合有什么用?
答:
如果想一次构建多个项目模块,则需对多个项目模块进行聚合,代码如下:
<modules>
<module>../子项目名1</module>
<module>../子项目名2</module>
<module>../子项目名3</module>
</modules>

【017】Maven中继承与聚合的区别?
答:
聚合主要是为了快速构建项目,它可以将一个项目拆分成多块,让多个人一起开发
继承主要是为了消除重复

【018】Maven为什么要搭建私服?
答:

【019】Nexus的仓库类别和具体仓库都有哪些?
答:
Nexus仓库可以配置3种类型的仓库和组,分别是:       

【020】Maven项目如何从私服下载资源?
答:
①  添加镜像配置:将所有访问外网仓库的请求指向私服
②  添加仓库配置:
【注意】仓库的配置是在pom.xml中配置的,优先级大于总配置文件(settings.xml)
③  生效配置

【021】Maven项目如何上传资源到私服?
答:
①  在项目的pom.xml文件中添加上传部署的路径
             如果需要对releases版本进行多次部署,需在私服中对release仓库进行
Configuration  -->>  Development Policy  -->>  "Allow Redeploy"
②  在maven的总配置文件(settings.xml)中添加上传构件到nexus的账号、密码
③  在项目中右键选择 run as maven build...,然后在Goals中输入deploy,将项目部署到私服






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2