Maven中pom文件详解
在IDE中使用Maven
IDE工具
MyEclipse
集成maven插件
Eclipse
Eclipse For Java EE
IDEA
集成Maven插件
在IDE中
配置Maven
- 指定maven安装目录和配置文件
- 自动更新maven项目:勾选import projects automatically (2020版本 :Ctrl + Shift + O)
创建Maven项目
new Module——>Maven——>勾选Create from archetype
执行maven操作
Maven projects显示所有maven项目
执行生命周期
如果不想单独执行,就点击maven框里的Execute Maven Goal(在run maven的右边)
也能自定义添加一个maven操作组合
如果main文件下没有resources文件就创建一个,test文件下也是一样的
目录的类型与更改类型
在IDEA中目录是分类型的,常营的4中:
Sources Root 主代码的目录:src/main/java
Test Sources Root 测试代码的目录:src/test/java
Resources Root 主代码所需资源的目录:src/main/resources
Test Resources Root测试代码所需资源的目录:src/test/resources
注:在IDEA中默认创建的目录都是普通的Directory,创建后需要设置目录的类型
可以在文件右键 Mark Directory As中更改
Maven中pom.xml文件详解
简介
pom:project object model项目对象模型
pom.xml是Maven的核心配置文件
一个Maven项目有且只有一个pom.xml文件,该文件必须在项目的跟目录下
坐标
什么是坐标
用来唯一的标识每个项目,必须为项目定义坐标,坐标必须唯一
目的是为了让其他的Maven项目可以使用该项目生成的jar包
坐标详解
Maven坐标是通过一些元素来定义:groupId(组织的ID)、artifactId、version
groupId(组织的ID):表示当前模块所属于的项目
artifactId:模块的ID
version:当前的版本
<groupId>org.example</groupId><artifactId>maven-project</artifactId><version>1.0-SNAPSHOT</version>
dependency
基本配置
如何查找一个jar包的坐标
https://search.maven.org/或者:https://maven.aliyun.com/mvn/view(maven.aliyun.com/nexus)
查找mysql-connector
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- mysql jar包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.22</version></dependency></dependencies>
scope作用域
表示依赖的作用域,用来配置依赖的jar包可使用的范围
取值 | 含义 | 举例 |
---|---|---|
compile | 该依赖可以在整个项目中使用,参与打包部署,默认值 | commons-fileupload |
test | 该依赖只能在测试代码中使用,并且不参与打包部署的 | junit |
provided | 该依赖编写源代码时需要,不参与打包部署 | servlet-api、jsp-api |
runtime | 该依赖编写代码时不需要,运行时需要,参与打包部署 | mysql-connector |
system | 表示使用本地系统路径下的jar包,需要和一个systemPath一起使用 | ojdbc.jar |
使用本地jar包(放在自己创建的lib文件下,与src同级):
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.22</version><systemPath>${basedir}/lib/mysql-connector-java-8.0.17.jar</systemPath>
</dependency>
properties
全局属性,一般情况下同于定义全局的jar包的版本
作用:比如在properties中定义版本<ljy.version>4.3.12</ljy.version>
那么在对于的依赖下添加${ljy.version}
在properties中改了 后面对应的依赖版本也跟着改了(方便)
在依赖的version中alt+ctrl+v(快速提取)
如:
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target><mysql-connector-java.version>8.0.22</mysql-connector-java.version>
</properties><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql-connector-java.version}</version></dependency>
repositories
用来配置当前工程使用的远程仓库
依赖查找的顺序:本地仓库——>当前工程pom.xml中配置的远程仓库——>setting.xml中配置的远程仓库
spring为例:url 是spring官方地址
<repositories>
<!-- 有些最新的jar包,可能在中央仓库上并没有提供,此时可以使用jar包官方提供的仓库--><repository><id>spring_repo</id><url>https://repo.spring.io/milestone/</url></repository>
plugin(配置插件)
配置插件,是一种工具
格式:
<build><plugins><plugin><groupId>xxxx</groupId><artifactId>zzzz</artifactId><version>zzzz</version></plugin></plugins>
</build>
<build><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin></plugins></pluginManagement></build>
超级POM
所有的pom.xml文件都继承了父POM,这个父POM称为超级POM(Super POM),你看不见也改不了,但是在myeclipse软件中能看见
原文链接:Maven中pom文件详解 - 喂s别闹 - 博客园
Maven中pom文件详解相关推荐
- Maven中settings文件详解
一.自带的settings文件 二.元素说明 三.两种完整的settings文件 一.自带的settings文件 我们下载一个maven,在其config目录下,都会有一个settings.xml文件 ...
- java中pom文件详解
目录 一.maven项目的目录结构 二.根元素和必要配置 三.父项目和parent元素 四.项目构建需要的信息 1.路径管理 2.资源管理 3.插件管理 4.构建扩展 5.其他配置 五.项目依赖相关信 ...
- springboot中pom文件详解
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- GAZEBO 中 sdf文件详解
转载自:https://blog.csdn.net/weixin_44900096/article/details/103017522 GAZEBO 中 sdf文件详解 木木木一 2019-11-11 ...
- Maven中scope标签详解
概述 scope元素的作用:控制 dependency 元素的使用范围.通俗的讲,就是控制 Jar 包在哪些范围被加载和使用.具体值如下: compile:默认值.表示被依赖项目需要参与当前项目的编译 ...
- Android 中rc文件详解
rc文件详解 转载https://www.cnblogs.com/zhougong/p/8889040.html
- 关于Maven中pom文件标签的详解,分别对比父工程pom文件与子工程pom文件。
一.介绍 这里我们以若依开源框架为例,我们先讲解,父工程pom文件,之后再讲解子工程pom文件. 首先,我们先介绍若依前后端分离项目的目录结构; 一.父工程pom.文件 父工程pom文件注释:(每个标 ...
- maven(二)pom文件详解
文章目录 1. 什么是pom 文件? 2. pom文件各常用属性含义 2.1 项目基本信息 2.2 build项目构建属性介绍 2.2.1 resources资源路径列表 2.2.2 plugins ...
- maven中pom文件解析
pom文件是maven中最重要的文件,以上命令的也需要根据pom文件进行运行.一般在构建完maven项目后需要修改pom文件添加诸如依赖关系,打包机制及一些项目的详细信息.一般的pom包含如下一些基本 ...
最新文章
- benet 3.0的windows服务视频 第二章DNS
- 近期活动盘点:大咖云集,中国AI创新者论坛(3.21)
- JavaScript 运行时错误: 无法获取未定义或 null 一种解决方案
- 二级考试java模拟考试_2017年计算机二级考试Java模拟试题及答案
- QQ炫舞手游显示进入服务器失败6,qq炫舞手游进不去怎么办 游戏进不去方法详解[多图]...
- SQL Server有这些属性吗
- 黑盒攻击很难?元学习提高黑盒对抗攻击成功率
- 06.大厂面试题:请讲下SpringBoot的日志框架原理
- 【持续更新】Java序列化对象释疑
- 学校图书馆管理系统/图书管理系统的设计与实现
- windows cl命令行编译和nmake
- 计算机图形学(二)——画一个三角形1.0
- 【转】计算机网络之域名、主机名、IP地址和URL
- 微信小程序“errMsg“:“openSetting:fail can only be invoked by user TAP gesture.“
- 形容词,名词记忆(五):ing ,ed 后缀常用词
- 【技术白皮书】第一章:基于深度学习的文本检测与识别的技术背景
- OpenStack | Placement组件
- MATLAB之极限、积分、微分
- jmeter使用BeanShell Sampler测试自己写的java接口(一)
- 电磁阀的分类及应用范围