maven的核心概念
(77条消息) Maven的核心概念_EQ思凡的博客-CSDN博客_maven核心概念
1.POM文件
pom文件项目对象模型,maven把一个项目当成一个模型使用
约定的目录结构:maven项目中的目录和文件都是固定的
坐标:是唯一的一个字符串,用来表示资源
依赖管理:管理你的项目可以使用jar依赖
仓库管理:(了解就可以)资源存储的位置
生命周期:(了解)maven构建项目的周期
插件和目标:
继承:
聚合:
maven项目的约定目录:
项目/
/src
/main
/java
/resources
/test
/java
/resources
/pom.xml
tree +文件可以看到文件的结构
修改setting里面的配置可以修改默认的路径
<localRepository>D:\Program Files\Apache\maven\apache-maven-3.8.4-bin\apache-maven-3.8.4\maven-repo</localRepository>
仓库就是存放各种依赖的位置
仓库存放的东西有maven存放的依赖,还有我们项目存在的依赖
本地仓库就是电脑上的本地的
远程仓库是使用互联网的仓库
远程仓库里面有中央仓库,这是最权威的,还有镜像就是中央仓库的备份
私服是在局域网里面使用的服务器
maven进行下载的时候首先检查的是本地仓库然后是私服 之后是镜像之后是局域网
动力节点王鹤Maven教程-玩转Maven系列之Maven入门实战_哔哩哔哩_bilibili
pom文件
modelversion:模型的版本对于maven2.0和maven3.0现在只能有
groupid:是域名的倒着写,或者是域名的倒写+项目名称
actifactID:表示的是项目的名称,或者之前项目的子项目
version:表示的是版本号后面如果跟着SNAPSHOT表示的是快照,就是项目不稳定
这三项代表的是唯一的坐标,唯一的项目
www.mvnrepository.com mvn中央仓库
2.maven的编译测试打包部署等都对应着一个个的生命周期
packaging:默认打包方式是jar,web应用则是war
dependencies是依赖
dependency
项目中要使用的各种资源说明
properties:告诉我们使用的jdk的属性的
build:使用的jdk的版本
maven的生命周期:maven的命令、maven的插件
maven的插件:maven执行命令的时候,真正完成功能的是插件插件就是一些jar文件
1)单元测试:junit是用来测试程序的,测试的目的测试类中的方法,每一个方法都是独立的单元
maven借助单元来测试方法是否符合周期
(78条消息) Maven下Junit的使用_浪子边的博客-CSDN博客_junit maven
在pom首先去添加junit单元
测试的时候要注意的
首先在java里面创建测试的名字
如果测试的是类则类的命名为Test+类
如果测试的是方法则方法的命名为 Test+方法
方法必须是public 要求没有返回值是void
测试的项目进行实例化:
测试项目:
打包项目:
mvn install
将项目上传到本地仓库
插件是在build里面来进行配置的,
两个配置的位置:一种是在properties里面去配置还有一种是在build里面去配置
idea与maven配合使用需要去配置两个地儿,一个是settings 另一个是other settings
file --settings是配置当前工程的,file-- other settings是来配置其他的settings的
这个runner可以设置jdk的参数
设置这个参数可以加快maven项目的创建
配置以后项目的maven - other settings
这里的setting for new projects可以为后面的环境来配置一些信息
在project stucture 当中创建新的moudle,在moudle里面选择quick-start
普通的java项目
点击Configure --> Settings,在Runner页面的VM Options添加:-DarchetypeCatalog=local,点击Apply,点击OK。
pom.xml配置文件:
<?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>
<groupId>org.example</groupId>
<artifactId>ch2-javase-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 这里是网上的路径,我们的项目不是展示给别人看的,所以可以删掉-->
<!-- <name>ch2-javase-maven</name>-->
<!-- <!– FIXME change it to the project's website –>-->
<!-- <url>http://www.example.com</url>-->
<properties>
<!-- 使用的jdk版本-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 这里代表的是jdk的版本-->
<maven.compiler.source>1.8</maven.compiler.source>
<!-- 你的版本应该运行在什么样子的jdk版本中-->
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- 表示的是单元的测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- 插件就算你不去写他也是有的-->
<!-- <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>-->
<!-- <!– default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging –>-->
<!-- <plugin>-->
<!-- <artifactId>maven-resources-plugin</artifactId>-->
<!-- <version>3.0.2</version>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <artifactId>maven-compiler-plugin</artifactId>-->
<!-- <version>3.8.0</version>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <artifactId>maven-surefire-plugin</artifactId>-->
<!-- <version>2.22.1</version>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <artifactId>maven-jar-plugin</artifactId>-->
<!-- <version>3.0.2</version>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <artifactId>maven-install-plugin</artifactId>-->
<!-- <version>2.5.2</version>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <artifactId>maven-deploy-plugin</artifactId>-->
<!-- <version>2.8.2</version>-->
<!-- </plugin>-->
<!-- <!– site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle –>-->
<!-- <plugin>-->
<!-- <artifactId>maven-site-plugin</artifactId>-->
<!-- <version>3.7.1</version>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <artifactId>maven-project-info-reports-plugin</artifactId>-->
<!-- <version>3.0.0</version>-->
<!-- </plugin>-->
<!-- </plugins>-->
<!-- </pluginManagement>-->
<!-- </build>-->
</project>
要在上面加上Test之后才可以运行
可以将maven里面的项目都刷新一遍
点击这个项目可以进入这些项目的生命周期
在dependencies当中可以看到这些
war 和 war exploded的区别(81条消息) Tomcat部署时war和war exploded区别以及平时踩得坑_徐刘根的博客-CSDN博客_war_exploded
可以点击reload来进行刷新
import module 可以导入到里面几个moudle
依赖的范围
(76条消息) Maven 依赖范围_seasonsbin的博客-CSDN博客_maven依赖范围
<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>
可以在properties中定义变量名
不会将java目录下面的其他非java目录放在里面