java基础-构建工具mvn-day20
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常见的插件
编译器
修改项目的pom.xml 不同的子项目 用的JDK版本不一样 这个场景很少见

资源拷贝
只有放在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的更多相关文章
- Java基础-DButils工具类(QueryRunner)详解
Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...
- JAVA基础——Arrays工具类十大常用方法
Arrays工具类十大常用方法 原文链接:http://blog.csdn.net/renfufei/article/details/16829457 0. 声明数组 String[] aArray ...
- java 基础 ----- Arrays 工具类
----- Arrays 工具类是一个比较方便的类 常用的方法 也可以通过jdk文档进行查看 右侧有偶 对一些比较常用的方法进行演示 直接放在main方法中进行测试 ---- equ ...
- java项目构建工具Maven
一.java-maven常用命令 mvn archetype:create 创建Maven项目 mvn compile 编译源代码 mvn deploy 发布项目 mvn test-compile 编 ...
- Java基础-常用工具类(二)
Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 通过 Scanner 类的 next() 与 nextLine() ...
- Java基础-常用工具类(一)
object类 Object 类是所有类的的父类,如果一个类没有明确使用EXPENTS关键字明确标识继承另外一个类,那么这个类默认继承object类,oject类中的方法适合所有子类 1)toStri ...
- java基础之 工具类
一.StringUtils StringUtils.isEmpty(null) && StringUtils.isEmpty(""); // true String ...
- java基础-开发工具IDEA
常用快捷键 查找 查找:Ctrl + F Find In Path: Ctrl + F + Shift (比普通查找多了一个shift) Search EveryWhere : 双击Shift 视图 ...
- Java项目工程化之项目构建工具Maven
欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...
- Java构建工具Ant小记(一)
Ant简介 Ant是基于java的构建工具.理论上来说它类似与make工具,但是却克服了make的一些固有的缺陷. 传统的Make是基于操作系统shell的构建工具,虽然也可以基于工作的os对make ...
随机推荐
- 如何判断lib和dll是32位还是64位?答案是使用微软的dumpbin工具,后面讲了如何使用gcc生成lib和dll
为什么我会考虑这个问题呢?因为我在使用java去调用一个c的lib库的时候,弹出以下警告: D:\work\ideaworkpaces\jdk21Test001\src\main\java\lib\h ...
- Spring+SpringMVC+Mybatis+Vue+Axios+Thymeleaf整合案例
1.创建SSM-Parent父项目 修改配置文件 <?xml version="1.0" encoding="UTF-8"?> <projec ...
- XILINX HLS 入坑记录 之 写RAM 综合出 读取+写入Ram
最近使用 Xilinx HLS 来开发 算法的IPcore,使用的Vitis 2021,发现光是 EDA 工具就存在很多的bug,比如: 1.经常C综合 停留在 Using flow_target ' ...
- 组合式api的使用方式
方式一:通过setup选项 <script> export default { setup(){ // 提供数据 // 提供函数 // 提供计算属性等等..... } } </scr ...
- 【OpenCV】【Python】关于cv2.findContours()轮廓索引(编号)解析(RETR_TREE)
在打算自己实现二维码的定位的时候,看到了相关博文的关于cv2.findContours返回的层级信息来定位三个"回"字从而达到定位二维码的目的,但是返回的hierarchy中的层级 ...
- Python——第四章:作用域
作用域: 变量的访问权限 全局变量 -> 全局作用域 局部变量 -> 局部作用域(比如在函数内定义的变量,只能在函数内调用) a = 10 # 全局变量 -> 全局作用域 print ...
- CentOS7,配置rsyslog客户端地址
在CentOS 7系统,将所有日志转发到 192.168.168.168 日志服务器,你可以按照以下步骤进行配置: 确保rsyslog已经被安装 rpm -qa|grep rsyslog 1.打开 r ...
- 集群化部署ZabbixServer
修改Zabbix-agent配置 1.修改配置文件 三台zabbix-Server上操作 vim /etc/zabbix/zabbix_agent2.conf Server=127.0.0.1 改成 ...
- C语言之检验三边能否构成三角形
要求: 编写程序检验由三边能否构成三角形,检验方法是任意两边和均要大于第三边. 输出格式:若结果可以构成,输出YES,否则输出ERROR DATA 其实很简单,运用与逻辑运算符&&判断 ...
- 神经网络优化篇:梯度检验应用的注意事项(Gradient Checking Implementation Notes)
梯度检验应用的注意事项 分享一些关于如何在神经网络实施梯度检验的实用技巧和注意事项. 首先,不要在训练中使用梯度检验,它只用于调试.意思是,计算所有\(i\)值的\(d\theta_{\text{ap ...