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. Feign源码解析:初始化过程(一)

    前言 打算系统分析下Feign的代码,上一篇讲了下Feign的历史,本篇的话,先讲下Feign相关的beanDefinition,beanDefinition就是bean的设计图,bean都是按照be ...

  2. 一个ssh无法远程登录的问题跟踪解决

    用户反馈龙芯服务器系统loongnix-server使用root用户ssh远程登录,有时候可以有时候又无法登录,频繁出现错误:Permission denied,please try again.我分 ...

  3. Vue学习笔记-生命周期

    整体页面代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  4. Ribbon:Spring Cloud负载均衡与服务调用组件

    Ribbon:Spring Cloud负载均衡与服务调用组件 问题总结 负载均衡? Ribbon实现服务调用? Ribbon实现负载均衡? 切换负载均衡策略? 定制负载均衡策略? 问题答案 负载均衡 ...

  5. 非工程师指南: 训练 LLaMA 2 聊天机器人

    引言 本教程将向你展示在不编写一行代码的情况下,如何构建自己的开源 ChatGPT,这样人人都能构建自己的聊天模型.我们将以 LLaMA 2 基础模型为例,在开源指令数据集上针对聊天场景对其进行微调, ...

  6. elastic优化

    通过定义keyword 的 "null_value" :"NULL",使得搜索是不用单独使用exists查询.统一用terms查询就能查询到想要的结果 利用co ...

  7. PySimpleGUI 使用浅谈

    1. 背景 PySimpleGUI是一个简单易用的Python GUI库,它提供了一种直观且快速创建图形用户界面的方式. 2. 安装 pip install PySimpleGUI 3. PySimp ...

  8. Salesforce LWC学习(四十六) record-picker组件浅谈

    本篇参考: https://developer.salesforce.com/docs/platform/lwc/guide/reference-graphql.html https://develo ...

  9. c++ 期末编程题

    1. 计算两点之间的距离 #include <iostream> #include <cmath> using namespace std; int main() { int ...

  10. linux中mysql下载安装部署

    创建mysql文件 mkdir mysql 首先通过yum下载wget命令 yum -y install wget 在mysql文件中通过wget下载MySQL存储库 wget https://dev ...