Maven

Maven 主要用于 Java 的项目构建、依赖管理、打包发布

安装与配置

前往官方下载页面open in new window

  • Win10 下载 apache-maven-3.6.1-bin.zip,解压后到 D:/,配置环境变量
  • Ubuntu 下载 apache-maven-3.6.1-bin.tar.gz,解压后到 D:/,配置环境变量
mvn -v

常用命令

mvn clean

mvn complie

mvn test

mvn package

mvn install

mvn deploy

依赖管理

传递依赖 排除依赖

依赖冲突

  • 短路优先
  • 声明优先

打包发布

  • jar:默认的打包方式,添加了spring-boot-maven-plugin插件之后,运行mvn package后会打包成一个可以直接运行的 jar 文件,使用 java -jar 命令就可以直接运行
  • war:在tomcat容器中运行需要达成war包
  • pom:一般用于父工程或聚合工程的打包,用来定义依赖的版本,或添加某些公用的依赖
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.demo</groupId>
  <artifactId>api</artifactId>
  <packaging>pom</packaging>
  <version>0.0.1-SNAPSHOT</version>

  <description>Demo project for Spring Boot</description>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.2.RELEASE</version>
    <relativePath/> 
  </parent>

  <modules>
    <module>api-eureka</module>
    <module>api-gateway</module>
    <module>api-common</module>
  </modules>

  <properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>${spring-cloud.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>