1. 初识mvn

mvn是一个项目构建工具 idea里面内置ant,已经基本被maven取代

官网:https://maven.apacher.org

核心文件pom.xml project object model

面向的是项目

idea内置mvn的位置

D:\02-soft_setup\01-idea\ideaIU-2019.2.3.win\plugins\maven\lib\maven3

将conf里面的setting 复制到user/.m2目录

setting/build_tools/maven

初次使用maven user/.m2目录不存在的解决

如何解决

环境变量PATH添加 maven的bin目录

cmd 输入

mvn help:system

注:可能运行较慢 可以等配置完镜像源 在运行 会快很多

什么是仓库



每个jar包都有唯一的坐标

远程仓:

中央仓默认是apache提供

访问一下中央仓

mavenreposity.com -->mybatis

私服仓库--本地局域网 公司内部搭建的仓库

本地仓库 --用户缓存远程下载的jar

如何配置本地仓

什么是镜像仓库?

远程的apache仓库 用国内的镜像代替 例如 aliyun镜像仓

如何配置 国内的镜像仓

mirrors标签添加

	<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

maven关于jdk的配置

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

检查一下 是否完成以下配置

mvn工程的类型

2. 用maven创建工程

new project 不勾选模板

这三个参数其实就是maven里面的坐标

GroupId AtriFactId Version

初次创建的工程会下载jar包

创建好的工程:

各个文件夹的作用

idea右边的maven插件 双击 install



在本地仓respority目录里面查看是否有jar包打出



3. maven工程 之间的关系

依赖 继承 聚合

依赖关系 以如何 注入依赖?

pom.xml中增加坐标 自动依赖

    <dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
</dependencies>

不同的版本 自动解决jar包冲突

依赖的传递

将demo工程

clean -- install 重新打jar包

创建项目2

将demo1的坐标直接复制到demo2的dependency

    <groupId>com.msb</groupId>
<artifactId>MavenDemo</artifactId>
<version>1.0-SNAPSHOT</version>

点击自动导入

demo1 已经mybatis自动的依赖 添加

依赖的两个原则

最短路径原则 最先声明原则

如何排除掉demo1里面的mybatis

    <dependencies>
<dependency>
<groupId>com.msb</groupId>
<artifactId>MavenDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

mybatis自动消失

依赖的范围:

compile provied runtime system

MavenDemo2是MavenDemo工程的子工程 如何关联

    <parent>
<groupId>com.msb</groupId>
<artifactId>MavenDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../MavenDemo</relativePath>
</parent> <dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
</dependencies>

4. 父子 mvn工程

父工程

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <!--定义为pom项目-->
<packaging>pom</packaging> <groupId>com.msb</groupId>
<artifactId>ParentDemoProject</artifactId>
<version>1.0-SNAPSHOT</version> <!--版本定义-->
<properties>
<mybatis.version>3.5.4</mybatis.version>
<spring-core.version>5.1.11.RELAESE</spring-core.version>
</properties> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring-core.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-core.version}</version>
</dependency> </dependencies>
</dependencyManagement> </project>

ChildProj自动增加dependency

5. mvn常见的插件

  1. 编译器

    修改项目的pom.xml 不同的子项目 用的JDK版本不一样 这个场景很少见

  2. 资源拷贝

    只有放在src/main/resource下面的文件

    打包后才会在target/class下面放着

如何把非resource 也打包到classes目录中

6. tomcat插件

new project MavenWarDemo01



点击自动导入

配置tomcat插件

注意不要放错了位置

<plugin>
<!--tomcat插件-->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>

启动:

浏览器访问:http://localhost:8080/index.jsp

maven 命令 clean与package的区别

java基础-构建工具mvn-day20的更多相关文章

  1. Java基础-DButils工具类(QueryRunner)详解

    Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...

  2. JAVA基础——Arrays工具类十大常用方法

    Arrays工具类十大常用方法 原文链接:http://blog.csdn.net/renfufei/article/details/16829457 0. 声明数组 String[] aArray ...

  3. java 基础 ----- Arrays 工具类

    -----  Arrays  工具类是一个比较方便的类 常用的方法 也可以通过jdk文档进行查看    右侧有偶 对一些比较常用的方法进行演示   直接放在main方法中进行测试 ----   equ ...

  4. java项目构建工具Maven

    一.java-maven常用命令 mvn archetype:create 创建Maven项目 mvn compile 编译源代码 mvn deploy 发布项目 mvn test-compile 编 ...

  5. Java基础-常用工具类(二)

    Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 通过 Scanner 类的 next() 与 nextLine() ...

  6. Java基础-常用工具类(一)

    object类 Object 类是所有类的的父类,如果一个类没有明确使用EXPENTS关键字明确标识继承另外一个类,那么这个类默认继承object类,oject类中的方法适合所有子类 1)toStri ...

  7. java基础之 工具类

    一.StringUtils StringUtils.isEmpty(null) && StringUtils.isEmpty(""); // true String ...

  8. java基础-开发工具IDEA

    常用快捷键 查找 查找:Ctrl + F Find In Path: Ctrl + F + Shift (比普通查找多了一个shift) Search EveryWhere : 双击Shift 视图 ...

  9. Java项目工程化之项目构建工具Maven

    欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...

  10. Java构建工具Ant小记(一)

    Ant简介 Ant是基于java的构建工具.理论上来说它类似与make工具,但是却克服了make的一些固有的缺陷. 传统的Make是基于操作系统shell的构建工具,虽然也可以基于工作的os对make ...

随机推荐

  1. 【低代码】低代码平台协同&敏捷场景下的并行开发解决方案探索

    低代码开发平台的出现,大大地提高的产品交付效率,但是在协同开发.敏捷迭代的场景下,也暴露出了一些问题. 例如: 多人同时对项目进行修改,相互影响甚至修改内容被互相覆盖: 同一项目下多个需求同步开发,但 ...

  2. 被面试官PUA了:创建索引时一定会锁表?

    索引主要是用于提高数据检索速度的一种机制,通过索引数据库可以快速定位到目标数据的位置,而不需要遍历整个数据集,它就像书籍的目录部分,有它的存在,可以大大加速查询的效率. 那么问题来了:在创建索引时一定 ...

  3. Ubuntu 20.04 安装Odoo17

    1.升级系统 sudo apt-get update 2.更新系统 sudo apt-get upgrade 3.查看系统Python3版本 python3 -V 4.更新Python3.8到3.10 ...

  4. Object类、String和StringBuffer、Math类、日期处理类

    1.Object类 "万物皆对象":(1)从类和对象角度:任何具体事物都是一个对象,. (2)Object类,类似"东西".所有的类都继承了Object类. 使 ...

  5. ElasticSearch之cat thread pool API

    命令样例如下: curl -X GET "https://localhost:9200/_cat/thread_pool?v=true&pretty" --cacert $ ...

  6. 快速上手 dbt 数据转换工具 -- dbt core 命令进阶篇

    引 根据第一篇文章的约定,我想通过接下来的几篇文章带大家进一步了解 dbt 的用法,原计划这篇文章我会介绍 dbt 命令的进阶用法,进一步认识 dbt 的配置以及如何创建增量表等等零零散散十几个方面的 ...

  7. BUUCTF 加固题 Ezsql WriteUp

    文章目录 想直接要加固代码的点这里 题目 一.查看 二.进入目标机器加固 修改前的文件: 添加如下代码: 修改后的文件 三.Check 想直接要加固代码的点这里 题目 靶机地址解释: 第一行:目标机器 ...

  8. CUDA C编程权威指南:1.1-CUDA基础知识点梳理

      主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的. 1.CUDA 解析:2007年,NV ...

  9. Ambient Mesh:Istio 数据面新模式

    摘要:基于Istio对于Kubernetes生态的完美补充,随着Kubernetes的大规模普及,Istio 数据面新模式 -Ambient MeshIstio也实现了对用户心智以及市场的快速抢占. ...

  10. 云小课|基于华为云WAF的日志运维分析,构筑设备安全的城墙

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:云日志服务用于收集 ...