基本概念
清理clean:将以前编译得到的旧文件class字节码文件删除
编译compile:将java源代码编译成class字节码文件
测试test:自动测试,自动调用junit程序
报告report:测试程序执行的结果
打包package:动态Web工程打War包,java工程打jar包
安装install:将target下的jar安装到本地仓库,可以供其他项目使用。
部署deploy:将动态Web工程生成的war包复制到Servlet容器下,使其可以运行
常见命令
mvn clean //在target文件夹中的一切都将被删除
mvn compile //编译源代码
mvn test //运行应用程序中的单元测试
mvn package //把jar打到本项目的target下
mvn install //把target下的jar安装到本地仓库,供其他项目使用.
mvn clean package //清除target文件夹的文件,并重新将项目打包
mvn clean compile //清除target目录中的生成结果,将.java类编译为.class文件
mvn clean test //清除target目录中的生成结果,执行单元测试
mvn clean deploy //清除target目录中的生成结果,部署到版本仓库
mvn clean install //清除target目录中的生成结果,使其他项目使用这个jar,会安装到maven本地仓库中
常用maven命令总结:
mvn -v //查看版本
mvn archetype:create //创建 Maven 项目
mvn test-compile //编译测试代码
mvn site //生成项目相关信息的网站
mvn package //依据项目生成 jar 文件
mvn install //在本地 Repository 中安装 jar
mvn -Dmaven.test.skip=true //忽略测试文档编译
mvn clean //清除目标目录中的生成结果
mvn archetype:generate //创建项目架构
mvn dependency:list //查看已解析依赖
mvn dependency:tree //看到依赖树
mvn dependency:analyze //查看依赖的工具
mvn help:system //从中央仓库下载文件至本地仓库
mvn help:active-profiles //查看当前激活的profiles
mvn help:all-profiles //查看所有profiles
mvn help:effective -pom //查看完整的pom信息
IDEA打包常用命令:
clean package -Pdev -DskipTests : -P后面是环境变量,可改选择dev开发环境,或其他环境进行打包。-DskipTests表示跳过测试。
maven插件
maven-assembly-plugin 用来帮助打包用的。可以打包成jar包、war包。
详情见: https://www.cnblogs.com/expiator/p/9926428.html
mvn clean compile assembly:single //打包只生成一个jar包,名字里有jar-with-dependencies,可执行。
<properties>
可以在properties标签中,统一管理各个依赖的version版本。
然后通过 <version>${ }</version> 调用 。
<properties> <java.version>1.8</java.version> <es.version>5.4.1</es.version> <elasticsearch.version>5.4.1</elasticsearch.version> <fastjson.version>1.2.70</fastjson.version> </properties>
<dependencies>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>${es.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
</dependencies>
<parent>
<parent>: 指定父级的模块,子模块可以使用父级模块的依赖。
比如指定 parent 为 spring-boot-starter-parent,引入spring-boot的依赖。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.4</version> <relativePath/> <!-- lookup parent from repository --> </parent>
另外的,一个项目中经常会有 common、dao、 service等模块。
一些共用的工具类可以放到 common模块中,然后在各个模块中指定parent为 common模块,
这样的话,其他模块就可以统一调用common中的类和方法,不用重复写工具类了。
Maven仓库网址
需要添加依赖的时候,可以去以下网址找相关的dependency依赖。
https://mvnrepository.com/
pom.xml
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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>org.example</groupId> <artifactId>Utils</artifactId> <version>1.0-SNAPSHOT</version> <properties> <java.version>1.8</java.version> <es.version>5.4.1</es.version> <elasticsearch.version>5.4.1</elasticsearch.version> <fastjson.version>1.2.70</fastjson.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>${es.version}</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>${es.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>