pom.xml


pom.xml 是 Maven 项目的核心配置文件,根元素是 project。project 的常用子元素如下表所示:

groupId、artifactId、version 组成一个 Maven坐标 (Coordinate),能够唯一的确定一个项目

构建生命周期


构建生命周期,描述了构建的过程。Maven 内置了 3 个构建生命周期:

  • clean(清理)

  • default(默认,重点关注)

  • site(站点)

构建生命周期由 phase(阶段)组成

  • phase 可以跟 plugin goal(插件目标)绑定

  • plugin goal 代表 1 个特定的任务

  • 一旦某个 phase 被执行,就会执行其绑定的所有 goal

通过命令 mvn 插件:help 可以查看插件包含的所有 goal

  • 比如 mvn archetype:help

default 生命周期


default 生命周期由下表中的 phase 组成:

使用命令 mvn package 就会按顺序执行 validate、compile、test、package 这几个阶段

常用命令


mvn archetype:generate:创建 Maven 项目

mvn clean:清楚 target

mvn clean package:先执行 clean,再执行 package

dependency 中 scope 的取值


compile默认。编译依赖关系在所有类路径中均可用。此外,这些依赖项会传递到相关项目

provided:仅在编译和测试类路径上可用,并且不可传递。希望JDK或容器在运行时提供它

runtime:依赖关系不是编译所必需,而是运行所必需的。它在运行时和测试类路径中,但不在编译类路径中

test:依赖关系对于正常使用该应用程序不是必需的,并且仅在测试编译和执行阶段可用。它不是可传递的

system:必须显式提供 jar 的位置(可以通过 systemPath 标签指定),不会去 Maven 仓库中查找

Maven 常见操作

=============================================================================

初始化配置:环境变量、仓库位置、配置镜像


先配置 JAVA_HOME,然后配置 MAVEN_HOME,添加 %MAVEN_HOME%/bin 到 PATH 中


修改仓库位置:在 %MAVEN_HOME%/conf/settings.xml 的 标签中添加1个


<localRepository>F:\Dev\Java\.m2\repository</localRepository> 

提高仓库的下载速度:在 %MAVEN_HOME%/conf/settings.xml 的 标签中添加1个


<mirror><id>aliyun</id><name>aliyun</name><url>https://maven.aliyun.com/repository/public</url><mirrorOf>central</mirrorOf></mirror> 

修改 Maven 的 JDK 版本


方法 1:在 pom.xml 中添加属性(每个 Maven 项目都要添加)


<properties><maven.compiler.source>14</maven.compiler.source><maven.compiler.target>14</maven.compiler.target><maven.compiler.compilerVersion>14</maven.compiler.compilerVersion></properties> 

方法 2:在 pom.xml 中添加插件(每个 Maven 项目都要添加)


<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>14</source><target>14</target></configuration></plugin> 

方法 3:在 %MAVEN_HOME%/conf/settings.xml 的 标签中添加 1 个

这是一种一劳永逸的办法,不需要去修改每一个 Maven 项目的 pom.xml,但其他人可能无法运行该项目


<profile><id>jdk14</id><activation><activeByDefault>true</activeByDefault><jdk>14</jdk></activation><properties><maven.compiler.source>14</maven.compiler.source><maven.compiler.target>14</maven.compiler.target><maven.compiler.compilerVersion>14</maven.compiler.compilerVersion></properties></profile> 

命令行新建 Maven 项目


方法 1

  • 在命令行输入:mvn archetype:generate,会让我们选择项目类型

  • 默认值是 7, maven-archetype-quickstart,是一个普通的 Java 项目

  • 如果希望创建一个 web 项目,输入 10, maven-archetype-webapp

    输入 groupId、artifactId、version、package

    如果希望 version、package 使用默认值,直接敲回车即可

    最后输入 y 表示确认,项目就创建完毕了

方法 2:用命令行配置好创建项目的各种参数


mvn archetype:generate -DgroupId=com.mj.maven -DartifactId=helloworld -Dversion=1.0-RELEASE -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart 

IDEA 导入 Maven 项目


选择 pom.xml 进行导入

IDEA 新建 Maven 项目(Web 项目)


生成 Runnable Jar


方法 1:maven-jar-plugin


<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.0.2</version><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib</classpathPrefix><mainClass>主类</mainClass></manifest></archive><finalName>jar的文件名</finalName></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.1.2</version><executions><execution><!-- <phase>package</phase> --><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration></execution></executions></plugin> 

方法 2:maven-assembly-plugin


<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.3.0</version><configuration><archive><manifest><mainClass>主类</mainClass></manifest></archive><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><finalName>jar的文件名</finalName><appendAssemblyId>false</appendAssemblyId></configuration><executions><execution><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin> 

方法 3:maven-shade-plugin


<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.3</version><executions># 总结对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)![image](https://img-blog.csdnimg.cn/img_convert/528918d131eb2ae6a0aab3e953fb8496.png)**需要面试题以及项目大纲的朋友点赞+收藏后,[点击这里免费](https://gitee.com/vip204888/java-p7)获取!诚意满满!!****Java面试精选题、架构实战文档:[传送门](https://gitee.com/vip204888/java-p7)****整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**ugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.3</version><executions># 总结对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)[外链图片转存中...(img-8Hf0Uy5H-1628506747834)]**需要面试题以及项目大纲的朋友点赞+收藏后,[点击这里免费](https://gitee.com/vip204888/java-p7)获取!诚意满满!!****Java面试精选题、架构实战文档:[传送门](https://gitee.com/vip204888/java-p7)****整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~****你的支持,我的动力;祝各位前程似锦,offer不断!**

【Java从0到架构师,mysql视频教程推荐相关推荐

  1. 【Java从0到架构师】MySQL 基础

    MySQL MySQL MySQL 的使用步骤 数据库的内部存储细节 GUI 工具 SQL 语句 DDL 语句 DDL 语句 - 数据库 DDL 语句 - 表 常用数据类型 - 数字类型 常用数据类型 ...

  2. 【Java从0到架构师(1),Java中高级面试题总结(全面)

    JSP 九大内置对象 MySQL 基础 + 多表查询 [Java从0到架构师]MySQL 基础 MySQL MySQL 的使用步骤 数据库的内部存储细节 GUI 工具 SQL 语句 DDL 语句 DD ...

  3. 【Java从0到架构师】RocketMQ 使用 - 发送消息、接收消息、特殊消息

    RocketMQ 消息中间件 入门案例 NameServer 地址 发送消息 同步发送消息 异步发送消息 一次性发送消息 生产者组.消息封装 接收消息 消费方式:推式消费.拉式消费 消息方式:集群模式 ...

  4. 【Java从0到架构师】Redis 进阶 - 持久化(RBD、AOF)、高可用(主从复制、哨兵机制、Cluster)

    Redis 原理与实战 持久化 Redis 持久化 - RDB Redis 持久化 - AOF AOF 文件重写机制 Redis 高可用 Redis 主从复制 搭建主从复制环境 全量复制和部分复制 R ...

  5. 【Java从0到架构师】Redis 基础 - 数据类型

    Redis 原理与实战 Redis 基础 为什么 Redis 这么快? Redis 安装.启动 Redis 常用配置 Redis 数据类型 通用命令 String - value 可以是字符串.数值. ...

  6. 【Java从0到架构师】Linux 应用 - 软件包管理、软件安装

    Linux 应用 - 软件包管理.软件安装 软件包管理器 rpm yum 软件的安装 jdk 1.8 mysql 5.7 tomcat8 Java 从 0 到架构师目录:[Java从0到架构师]学习记 ...

  7. 【Java从0到架构师】Zookeeper - 系统高可用、分布式的基本概念、Zookeeper 应用场景

    分布式基石 Zookeeper 框架全面剖析 系统高可用 集群 - 主备集群.主从集群.普通集群 分布式(系统部署方式) 微服务(架构设计方式) 分布式的基本概念 分布式存储.分布式计算 分布式协调服 ...

  8. 【Java从0到架构师】项目实战 - 驾考(旧)- Freemarker、MyBatis-Plus

    项目实战 - 驾考(旧)- Freemarker.MyBatis-Plus 各种 Object Freemarker 简单使用 常用功能 集成到 SpringBoot MyBatis-Plus 简单使 ...

  9. 【Java从0到架构师】SpringBoot - MyBatis

    SpringBoot - MyBatis 集成 MyBatis 引入依赖 数据源配置 - 源码 MyBatis 配置 - 源码 扫描 Dao MyBatis 主配置 - XML.注解.applicat ...

  10. 【Java从0到架构师】Maven - 依赖冲突、分模块构建项目

    SpringBoot - Maven 补充 依赖冲突 解决方案 - dependencyManagement 自定义属性 分模块构建项目 继承 - parent 聚合 - modules 依赖 - d ...

最新文章

  1. Xamarin.Android开发实践(十八)
  2. C与指针、C陷阱与缺陷
  3. 初中数学知识点总结_初中数学知识点总结大全_经典版_
  4. java 公因数_Java程序(最大公因数与最小公倍数)
  5. WAMP + Zend Framework + Zend Studio For Eclipse 开发环境搭建
  6. 制作登录注册密码找回网站常用控件
  7. Razor 中的@rendersection
  8. 加快Linux上yum下载安装包的速度(以CentOS 7,安装gcc为例)
  9. 学习bind源代码,比较bind的方式绑定函数在在内存使用上优于箭头函数
  10. 学习自动驾驶技术 学习之路_一天学习驾驶
  11. 牛腩新闻发布系统(一)
  12. 微信小程序查询数据库总条数
  13. Android 获取地理位置的经度和纬度
  14. 数据库系统原理练习题
  15. linux命令行was集群启停,was集群架构设计
  16. 谁将成为中国版底特律?
  17. 【Python123】鸡兔同笼
  18. Java(13)- 抽象类
  19. layer icon图标汇总
  20. 使用Atom打造无懈可击的Markdown编辑器

热门文章

  1. 【SpringCloud】高可用Eureka
  2. EfficientNetV2震撼发布!87.3%准确率!模型更小,训练更快!谷歌大脑新作
  3. 3D目标检测2021
  4. some of the strides of a given numpy array are negative
  5. av_interleaved_write_frame -22
  6. caffe 编译中出现的错误——fatal error: hdf5.h: 没有那个文件或目录
  7. Windows7-win10开启IPv6亲测最有效方法
  8. H3C 交换机S6520X软件版本升级
  9. php里面的log是什么文件夹,用PHP生成自己的LOG文件
  10. mysql实习生笔试题_2014阿里实习生面试题MySQL如何实现索引的