Maven的使用
dependencies元素
< dependencies >< /dependencies >,此元素包含多个项目依赖需要使用的< dependency >< /dependency >
dependency元素
- groupId:组织的唯一标识
- artifactId:项目的唯一标识
- version:项目版本
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.0.3.RELEASE</version> </dependency>
定义变量
可以定义变量在 dependency 中引用,代码如下: <properties> <swagger2.version>2.9.2</swagger2.version> </properties> <dependencies> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger2.version}</version> </dependency> </dependencies>
编译插件
maven 提供了编译插件,可在编译插件中涉及 Java 的编译级别,代码如下 <build> <plugins> <!--编译插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <!-- 配置使用的 jdk 版本 --> <target>1.8</target> <source>1.8</source> </configuration> </plugin> <!-- 资源文件拷贝插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.7</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- 配置Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <!-- http://localhost:{port}/{path} --> <port>8080</port> <path>/</path> <!-- 解决GET请求编码 --> <uriEncoding>UTF-8</uriEncoding> </configuration> </plugin> </plugins> <!--IDEA是不会编译src的java目录的xml文件,如果需要读取,则需要手动指定哪些配置文件需要读取--> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> </resources> </build>
Maven 命令打入 本地 Maven 库
安装指定文件到本地仓库命令:mvn install:install-file -DgroupId=<groupId> : 设置项目代码的包名(一般用组织名) -DartifactId=<artifactId> : 设置项目名或模块名 -Dversion=1.0.0 : 版本号 -Dpackaging=jar : 什么类型的文件(jar包) -Dfile=<myfile.jar> : 指定jar文件路径与文件名(同目录只需文件名) 安装命令实例: mvn install:install-file -DgroupId=top.simba1949 -DartifactId=simba -Dversion=1.0.0 -Dpackaging=jar -Dfile=D:\simba-1.0-SNAPSHOT.jar
Maven 常用命令
- 清理:mvn clean
- 编译:mvn compile
- 测试:mvn test
- 打包:mvn package
- 安装:mvn install
- 发布:mvn deploy
- 执行清理命令时所运行的命令:clean (清理 target 目录)
- 执行编译命令时所运行的命令:compile
- 执行测试命令时所运行的命令:compile->test
- 执行打包命令时所运行的命令:compile->test->package
- 执行安装命令时所运行的命令:compile->test->package->install(注意:执行 install 命令时,会将项目打成 jar 包或者 war 包到本地仓库中)
- 执行发布命令时所运行的命令:compile->test->package->install->deploy
Maven 生命周期
- Clean Lifecycle(清理生命周期):构建之前进行清理工作
- Default Lifecycle(默认生命周期):编译(compile)—>测试(test)—>打包(package)—>安装(install)—>发布(deploy)
- Site Lifecycle(站点生命周期):生成项目报告,站点,发布站点
打包类型
<?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>top.simba1949</groupId> <artifactId>maven-config</artifactId> <version>1.0-SNAPSHOT</version> <!--packaging标签配置打包类型,jar或者war或者pom--> <packaging>war</packaging> </project>
依赖范围
<?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>top.simba1949</groupId> <artifactId>maven-config</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <!--scope标签配置依赖范围, compile/provided/runtime/test/system --> <scope>test</scope> </dependency> </dependencies> </project>
- compile:默认范围
- provided:编译、测试有效,运行时无效,防止与tomcat下jar冲突
- runtime:测试、运行时有效
- test:测试有效
- system:编译、测试有效
依赖调节原则
- 第一声明者优先原则
- 路径近这优先原则
- 排除依赖
- 锁定版本
<properties> <spring>5.1.0</spring> </properties>