MAVEN教程--个人学习笔记
目录
Maven 3.6.3 的下载、安装、配置、检测(详细讲解)_【官方推荐】、唐城的博客-CSDN博客_maven3.6.3安装
1.1 maven概念
传统构建项目遇到的问题:
- jar包不统一,jar包不兼容使用maven
- 工程升级维护过程操作繁琐
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM:项目对象模型
1.2 maven作用
项目构建:提供标准的,跨平台的自动化项目构建方式
依赖管理:方便快捷的管理项目以来的资源(jar包),避免资源间的版本冲突问题
统一开发结构:提供标准的,统一的项目结构
1.3 maven仓库
仓库:用于存储资源,包含各种jar包
本地仓库
远程仓库:
私服仓库:部门/公司范围内存储资源的仓库,从中央仓库获取资源,可放一些具有版权的仓库
中央仓库:MAVEN团队维护,存储所有资源的仓库,开源jar包
Maven仓库中用于描述仓库中资源位置
https://repo1.maven.org/maven2/junit/junit/4.13.2/
Maven坐标主要组成
grouId:定义当前Maven项目隶属组织名称
artifactID:定义当前Maven项目名称
version:定义当前项目版本号
mvnrepository.com 网站可以直接复制相关坐标代码
1.4 maven创建maven项目
点击右上角的Project Structure->Modules
改变文件属性右键文件Mark Directory as --
src中 java:Sources resources:Resources
test中java:Test resources:Test:Resources
1.5 idea创建web项目
Project->maven->选择SDK和Create from archetype
输入webapp->OK
idea2019.3 无法使用3.8.5 现配置3.6.3
引入spring-context 依赖才有spring config选项
-
<dependencies>
-
<dependency>
-
<groupId>org.springframework</groupId>
-
<artifactId>spring-context</artifactId>
-
<version>5.0.2.RELEASE</version>
-
</dependency>
-
</dependencies>
构建tomcat,可以通过依赖的方式构建
-
<!-- 构建tomcat -->
-
<build>
-
<!-- 设置插件 -->
-
<plugins>
-
<!-- 具体插件位置 -->
-
<plugin>
-
<groupId>org.apache.tomcat.maven</groupId>
-
<artifactId>tomcat7-maven-plugin</artifactId>
-
<version>2.1</version>
-
<configuration>
-
<port>80</port>
-
<path>/</path>
-
</configuration>
-
</plugin>
-
-
</plugins>
-
</build>
点击edit configarations,选择maven,点击添加,
name:启动服务器 command line: tomcat:run OK
1.6 依赖配置
依赖指当前项目所需的jar,一个项目可以设置多个依赖
-
<dependencies>
-
<dependency>
-
<groupId>log4j</groupId>
-
<artifactId>log4j</artifactId>
-
<version>1.2.12</version>
-
</dependency>
-
</dependencies>
1.7 依赖管理
1.7.1 依赖传递
依赖具有传递性:
直接依赖:在当前项目中通过依赖配置建立的依赖关系
间接依赖:被资源的资源如果依赖其他资源,当前项目依赖其他资源
项目3的坐标
-
<groupId>com.it3</groupId>
-
<artifactId>web01</artifactId>
-
<version>1.0-SNAPSHOT</version>
在项目2中把项目3的坐标用依赖方式写入就可以了
-
<dependencies>
-
<dependency>
-
<groupId>com.it3</groupId>
-
<artifactId>web01</artifactId>
-
<version>1.0-SNAPSHOT</version>
-
</dependency>
-
</dependencies>
1.7.2 依赖传递冲突问题
路径优先:当依赖中出现相同的资源是,层级越深,优先级越低,层级越浅,优先级越高
声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
1.7.3 可选依赖
可选依赖指对外隐藏当前所选依赖的资源---不透明
-
项目3
-
<dependency>
-
<groupId>log4j</groupId>
-
<artifactId>log4j</artifactId>
-
<version>1.2.12</version>
-
<optional>false</optional><!--自己的东西不被别人用,设false 项目3被项目2使用不显示log4j-->
-
</dependency>
1.7.4 排除依赖
排除依赖指主动断开以来的资源,被排除的资源无需指定版本---不需要
项目2
-
<dependency>
-
<groupId>com.it</groupId>
-
<artifactId>web02</artifactId>
-
<version>1.0-SNAPSHOT</version>
-
<exclusions> <!--取其精华去其糟粕,排除项目3中的log4j,主动排除-->
-
<groupId>log4j</groupId>
-
<artifactId>log4j</artifactId>
-
</exclusions>
-
-
</dependency>
1.7.5 依赖范围
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
- 主程序范围有效(main文件夹范围内)
- 测试程序范围有效(test文件夹范围内)
- 是否参与打包(package指令范围内)
-
<dependency>
-
<groupId>log4j</groupId>
-
<artifactId>log4j</artifactId>
-
<version>1.2.12</version>
-
<scope>runtime</scope>
-
</dependency>
1.8 生命周期与插件
Maven对生命周期划分为3套
- clean:清除工作
- pre-clean 执行一些需要在clean之前完成的工作
- clean 移除所有上一次构建生成的文件
- post-clean 执行一些需要在clean之后立刻完成的工作
- default:核心工作,例如编译,测试,打包,部署
- site产生报告,发布站点
插件
-
<build>
-
<plugins>
-
<plugin>
-
<!--插件:对源码打jar包-->
-
<groupId>org.apache.maven.plugins</groupId>
-
<artifactId>maven-source-plugin</artifactId>
-
<version>2.2.1</version>
-
<executions>
-
<execution>
-
<goals>
-
<goal>jar</goal>
-
<goal>test-jar</goal> <!--对test打-->
-
</goals>
-
<phase>generate-test-resources</phase>
-
</execution>
-
</executions>
-
</plugin>
-
</plugins>
-
</build>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgcbabf
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13