Maven初级(中):https://developer.aliyun.com/article/1492447
2.在中央仓库中查找:
网址:
http://mvnrepository.com/
将以下坐标复制到pom文件中即可:
pom文件中引入依赖后,会去私服或者中央仓库中下载依赖:如果项目结构的External Librarites中出现刚引入的依赖,则说明依赖引入成功。
3、maven插件
1问题演示
我们在运行javase项目的时候,发现控制台会显示一些1.5已过时的警告。
说明:
当我们点击compile编译的时候发现maven编译的时候使用的插件是:maven-compiler-plugin:3.1:compile (default-compile) 。该插件默认编译的jdk版本是1.5.编译生成的.class文件,让idea中的jdk1.8运行,1.8的jdk运行1.5编译的class文件,会显示已过时字样。所以这里我们需要手动配置下jdk的编译版本,使用jdk1.8.
我们这里需要配置maven的插件。
2maven插件介绍
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成。例如编译源代码是由maven-compiler-plugin完成的,但是这些插件都是maven默认的插件,如果需要配置自己的插件,则需要通过插件的坐标来引入插件。插件的坐标可以从maven官方提供的插件列表进行下载:
Maven官方有两个插件列表:
第一个列表的GroupId为org.apache.maven.plugins,这里的插件最为成熟,具体地址为:http://maven.apache.org/plugins/index.html 第二个列表的GroupId为org.codehaus.mojo,这里的插件没有那么核心,但也有不少十分有用,其地址为:http://mojo.codehaus.org/plugins.html
1.访问网址,找到maven插件,然后点击编译compiler
2.点击用量信息页
3.复制插件
4.将上述复制的内容放到build标签里面
<!--插件管理--> <build> <plugins> <!--编译插件:jdk1.8--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <!-- put your configurations here --> <!--源码--> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
5.清除target编译和运行
使用的编译插件是我们自己配置的版本。
直接运行java代码就不会出现警告信息了。jdk的编译和运行版本统一了。
3 编译插件 maven-compiler-plugin
<!--JDK编译插件--> <!--编译插件:jdk1.8--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <!-- put your configurations here --> <!--源码--> <source>1.8</source> <target>1.8</target> </configuration> </plugin>
说明:插件都要放在 plugins标签里面。
4 测试插件maven-surefire-plugin
maven的test指令运行测试代码存在中文乱码问题, 用这个插件可以解决
<!--test插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <forkMode>once</forkMode> <argLine>-Dfile.encoding=UTF-8</argLine> </configuration> </plugin>
附一:完整的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>com.baidu</groupId> <artifactId>maven-usermanager</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <!-- 依赖管理: 1、导入依赖: idea导入 私服搜索坐标 2、依赖范围设置 3、依赖版本统一维护 插件管理: 1、编译插件 --> <!--依赖版本统一管理--> <properties> <junit.version>4.13</junit.version> <servlet.version>3.0.1</servlet.version> <jsp.version>2.3.3</jsp.version> <beanutils.version>1.8.3</beanutils.version> <commons.logging.version>1.1.1</commons.logging.version> <jstl.version>1.2</jstl.version> <log4j.version>1.2.17</log4j.version> <mabatis.version>3.5.0</mabatis.version> <mysql.version>5.1.18</mysql.version> </properties> <!--依赖管理:--> <dependencies> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <!--<version>4.13</version>--> <version>${junit.version}</version> <!--范围:测试存在--> <!--<scope>test</scope>--> </dependency> <!--servlet--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${servlet.version}</version> <!--编译 测试需要,运行时不需要--> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>${jsp.version}</version> <scope>provided</scope> </dependency> <!--commons-beanutils--> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>${beanutils.version}</version> </dependency> <!--commons-logging--> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>${commons.logging.version}</version> </dependency> <!--jstl--> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mabatis.version}</version> </dependency> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> <!--编译不需要。测试和运行需要--> <scope>runtime</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> </dependencies> <!--插件管理--> <build> <plugins> <!--JDK编译插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <!-- put your configurations here --> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>80</port> <path>/</path> </configuration> </plugin> </plugins> </build> </project>
附二:清理maven仓库
初始情况下,我们的本地仓库是没有任何jar包的,此时会从私服去下载(如果没有配置,就直接从中央仓库去下载),可能由于网络的原因,jar包下载不完全,这些不完整的jar包都是以lastUpdated结尾。此时,maven不会再重新帮你下载,需要你删除这些以lastUpdated结尾的文件。如果本地仓库中有很多这样的以lastUpadted结尾的文件,可以执行如下脚本来删除:
在上面的bat文件上右键—》编辑 。修改文件:
修改完毕后,双击运行即可删除maven仓库中的残留文件。
附三:更新依赖索引
有时候给idea配置完maven仓库信息后,在idea中依然搜索不到仓库中的jar包。这是因为仓库中的jar包索引尚未更新到idea中。这个时候我们就需要更新idea中maven的索引了,具体做法如下:
打开设置----搜索maven----Repositories----选中本地仓库-----点击Update
附四:JDK插件
<!--配置maven的插件--> <build> <plugins> <!--配置的是jdk编译器--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <!-- put your configurations here --> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
小结
第一章、Maven概述 1、maven是什么:软件-项目管理工具; 2、maven的作用: 【1】构建标准的项目:java,web 【2】管理项目的生命周期: 【3】maven管理项目中的jar包(依赖); 【4】maven管理插件; 3、maven的下载安装与配置: 【1】JAVA_HOME配置正确; 【2】MAVEN_HOME配置正确; mvn -v 第二章、maven仓库 【1】作用:存放jar包和插件; 【2】分类: 本地仓库:本地的一个文件夹 远程仓库:远程服务器上的一个文件夹 中央仓库:apache维护的仓库 私服:自己搭建的远程仓库 【3】仓库配置: 本地仓库配置: 私服配置:阿里云(外网),传智私服(局域网) 第三章、Maven项目创建-------重点 【1】把maven绑定到IDEA中: file->other settings-->default setting 设置maven环境:maven_home,settings.xml 【2】使用IDEA创建maven项目:掌握 创建maven的java项目:普通项目 打包方式为jar 项目结构 创建maven的web项目: 打包方式为war 项目结构 【3】maven项目的生命周期: 1、clean:删除项目构建过程中生成的文件(target) 2、default: 创建==》编译==》测试==》打包===》安装==》部署上线 3、site:了解 【4】生命周期相关命令:命令调用maven的插件执行任务 mvn clean:清理 mvn compile:编译 mvn test:测试 mvn package:打包 mvn install:安装 第四章、maven应用详解 ---------重点 【1】依赖管理: 1、坐标:定位一个jar包在本地仓库中的位置 <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> 2、导入依赖:导入坐标 本地仓库导入: Alt+Insert 远程仓库搜索:中央仓库,私服搜索 【2】依赖配置: 1、依赖作用范围配置:maven有3套运行环境 编译环境 测试环境 运行环境(tomcat) test - 是 - junit.jar compile 是 是 是 90%的jar-默认的 runtime - 是 是 mysql驱动(实现JDBC结构) provided 是 是 - servlet,jsp system 是 是 - 2、依赖版本统一维护: 定义版本信息: <properties> <junit.version>4.12</junit.version> </properties> 引用版本信息: <version>${junit.version}</version> 【3】插件管理: maven本身是一个插件库:默认的插件(版本低) 自己配置插件,覆盖默认的插件: 编译插件,测试插件,tomcat7插件