![cover](https://img-blog.csdnimg.cn/cb87c6c480a549a08fda001f349e3166.png)
【maven项目管理工具】超级详细的 Maven 安装&使用教程(基础)
Maven详细与使用
一、Maven简介
1.1 Maven是什么?
Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具。主要思想是通过将项目开发和管理过程抽象成一个项目对象模型(POM)的方式实现对Java项目的管理过程。
POM(Project Object Model,项目对象模型):Maven的核心。也是Maven对一个单一项目的描述。
1.2 Maven功能作用
1、依赖管理:管理项目依赖资源(jar包)、避免资源版本冲突(版本冲突控制);
2、项目构建:提供标准、跨平台、自动化的项目构建方式;完成项目代码的编译、测试、打包和部署;
3、统一开发结构:提供标准的、统一的项目结构;
1.3 Maven应用方式
1、独立应用Maven:通过Maven的各种命令进行项目的管理与控制(比如:编译、测试、打包等);
2、IDE+Maven结合:一般在IntelliJ IDEA或Eclipse等IDE开发工具中集成使用maven,简单,快捷,不需要级命令;
1.4 Maven组成结构
1.5 Maven项目体系结构
1.6 Maven相关概念
1.6.1 基本概念
(1) POM(项目对象模型):指pom.xml模型文件。旨在将项目抽象为一个模型使用,以完成编译、测试、打包、安装、部署等等。
(2) 统一的目录结构:有规定的目录和文件位置
(3) 资源坐标:jar资源的唯一标识(组织名groupId+项目名artifactId+版本号version)
(4) 依赖管理:管理本地项目所依赖的jar资源文件
(5) 仓库管理:jar资源的统一管理(分类:本地仓库、私服仓库、镜像仓库、中央仓库)
(6) 构建生命周期:maven工具构架项目的过程
(7) 插件和目标:执行maven构建时用的工具是插件
(8) 继承(高级)
(9) 聚合(高级)
1.6.2 Maven的生命周期(构建)
- Maven的生命周期(构建)过程包括:清理、编译、测试、报告、打包、安装、部署
- 清理(clean): 对应命令——mvn clean。删除上一次构建的结果,为下一次构建做好准备。
- 编译(compile): 对应命令——mvn compile和mvn test-compile。将Java源程序或Java测试程序编译成(*.class)字节码文件。
- 测试(test): 对应命令——mvn test。运行提前准备好的测试程序,执行src/text/java下的junit测试用例。
- 报告(site): 对应命令——mvn site。每次测试后用标准格式记录和显示测试结果。
- 打包(package): 对应命令——mvn package。Java工程打成jar包;Web工程打成war包。
- 安装(install): 对应命令——mvn install。把一个Maven工程经过打包操作生成的jar包/war包存入Maven仓库。
- 部署(deploy): 对应命令——mvn deploy。部署jar包——把一个jar包部署到Nexus私服服务器上,让其它开发人员共享;部署war包——借助相关Maven插件(例如cargo),将war包部署到Tomcat服务器上。
1.6.3 统一的目录结构(图示)
二、Maven下载、安装与集成
2.1 下载Maven安装包
2.1.1 下载链接
①Apache官网: https://www.apache.org/
②Maven首页: https://maven.apache.org/
③最新版本下载链接: https://maven.apache.org/download.cgi
④历史版本环境说明: https://maven.apache.org/docs/history.html
👉Maven3镜像仓库下载链接(历史版本): https://archive.apache.org/dist/maven/maven-3/
👉Maven4镜像仓库下载链接(历史版本): https://archive.apache.org/dist/maven/maven-4/
2.1.2 下载说明
- 官网最新版本说明:
- 镜像历史版本说明:
2.2 环境配置与安装步骤(Windows环境)
- 以 apache-maven-3.6.2-bin 版本安装为例:
2.2.1 安装过程说明(解压即安装)
1.获取已下载好的二进制安装资源包: apache-maven-3.6.2-bin.zip
2.拷贝到【自定义】的maven安装路径下:
3.右键【解压到当前目录】
4.安装目录说明:
2.2.2 修改本地仓库设置
- maven默认本地仓库配置位于 ${user.home}/.m2/repository 下, ${user.home} 默认存在C盘(系统盘)中,长期置于此会导致系统盘的压力逐渐增大,影响系统运行效率和性能。故一般情况需要变更配置,修改本地仓库地址。
- 处置方法:自定义 ——置于D盘等非系统盘即可。可参考下图进行自定义配置,方便管理。
2.2.3 环境变量配置
2.2.5 安装成功验证(cmd命令行窗口输入指令:mvn -v或mvn -version)
2.2.6 注意事项
- 安装目录中尽可能不含有[空格][中文汉字]等特殊字符;
- Maven的安装依赖于Java,在安装Maven之前需要安装配置好Java环境;
2.3 环境配置与安装步骤(Linux环境)
👉载自CSDN@爱编程的小庄:Maven的介绍及安装
2.3.1 过程说明(解压即安装)
1.下载 Maven
在 Maven 的官方网站上下载最新的Maven安装包,通常为一个压缩包,例如 apache-maven-3.8.3-bin.tar.gz。
2.解压 Maven
将下载的压缩包解压到合适的目录下,例如 /opt/maven。可以使用以下命令进行解压:tar -zxvf apache-maven-3.8.3-bin.tar.gz -C /opt/
3.配置环境变量
在命令行中执行以下命令打开配置文件:vi /etc/profile
- export M2_HOME=/opt/maven/apache-maven-3.8.3
- export PATH=PATH:M2_HOME/bin
4.生效环境变量
执行以下命令,使环境变量生效:source /etc/profile
5.验证 Maven 安装
在终端中输入以下命令,查看 Maven 是否成功安装:mvn -version
2.3 与IDE开发工具集成
2.3.1 IntelliJ IDEA与Maven集成
- 第一步: 【File】→【Settings…】;
- 第二步: 搜索【maven】→点击【maven】选项;
- 第三步: 修改【maven home directory】 到自己的本地maven路径下 (虽然IntelliJ IDEA已默认集成maven,但一般不用) ;
- 第四步: 修改【user settings file】到自定义的配置文件。
- 第五步(可选/可在第四步配置): 修改【local repository】到自定义的配置文件。
2.3.2 Eclipse/MyEclipse与Maven集成(略)
- 点击菜单栏window>preferences>Maven>User Settings
三、Maven手动构建
3.1 手动创建Maven工程结构
- 手动创建如下结构的文件夹体系
- 为MyApp.java、MyAppTest.java、pom.xml文件填充内容
—MyApp.java—
package com.company;
public class MyApp {
public String say(String name) {
System.out.println("hello " + name);
return "hello " + name;
}
}
—MyAppTest.java—
package com.company;
import org.junit.Test;
import org.junit.Assert;
public class MyAppTest{
@Test
public void testSay(){
MyApp myApp = new MyApp();
String ret =myApp.say("maven");
Assert.assertEquals("hello maven",ret);
}
}
—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>webapp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
</project>
3.2 手动Maven工程生命周期构建(命令行)
3.2.1 编译指令&清除指令:mvn compile & mvn clean
-
编译过程如下图(非首次编译;首次编译需要下载插件,比较慢)
-
编译指令执行结果:产生[target]文件夹
-
清除指令执行结果:[target]文件夹被清除
3.2.2 测试指令:mvn test-compile & mvn test
- 测试过程如下图(非首次;首次测试需要下载插件,比较慢)
- 测试指令执行结果:[target]文件夹下增加[surefire-reports(测试报告)]和[test-classes(测试程序字节文件)]两个文件夹
3.2.3 打包指令:mvn package
- 打包执行过程如下图(非首次;首次执行需要下载插件,比较慢)
- 打包指令执行结果:[target]文件夹下增加[maven-archiver]文件夹和[webapp-1.0-SNAPSHOT.jar]文件
3.2.4 安装指令:mvn install
- 安装执行过程如下图(非首次;首次执行需要下载插件,比较慢)
- 安装指令执行结果: 本地仓库中导入了自己的jar资源
3.2.5 其他指令:略
四、Maven模型构建
4.1 其他指令:略
五、基础附加补充
6.1 配置文件 settings.xml 说明
<?xml version="1.0" encoding="UTF-8"?>
<settings 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/settings-1.0.0.xsd">
<!-- 1.本地仓库配置。默认路径${user.home}/.m2/repository -->
<localRepository>${user.home}/.m2/repository</localRepository>
<!-- 2.maven交互模式:Maven是否需要和用户交互以获得输入。默认为true -->
<interactiveMode>true</interactiveMode>
<!-- 3.maven离线模式设置:默认为false -->
<offline>false</offline>
<!-- 4.额外的组标识符列表:当按前缀解析插件时,即当调用类似“mvn-prefix:goal”的命令行时,将搜索这些组标识符。如果列表中尚未包含组标识符“org.apache.Maven.plugins”和“org.codehaus.mojo”,Maven将自动添加这些标识符。-->
<pluginGroups>
<pluginGroup>com.your.plugins</pluginGroup><!--plugin的组织Id(groupId) -->
</pluginGroups>
<!-- 5.代理配置与管理:网络代理的列表,除另有规定(由系统属性或命令行开关),否则将使用列表中标记为活动的第一个代理规范。多代理可应对笔记本或移动设备的工作环境;通过简单设置profileId可较容易的更换整个代理配置 -->
<proxies>
<proxy><!-- 代理元素项 -->
<id>myproxy</id><!-- 代理标识Id -->
<active>true</active><!-- 激活设置:true表示激活代理 -->
<protocol>http</protocol><!-- 代理协议 -->
<host>proxy.somewhere.com</host><!-- 代理主机名 -->
<port>8080</port><!-- 代理端口号 -->
<username>proxyuser</username><!-- 代理用户名,登录代理服务器认证用 -->
<password>proxypass</password><!-- 代理用户密码,登录代理服务器认证用 -->
<nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts><!-- 不该被代理的主机名列表 -->
</proxy>
</proxies>
<!-- 6.服务端配置与管理:一些设置如安全证书不应该和pom.xml一起分发。该类型信息应该存在于构建服务器上的settings.xml文件中。-->
<servers>
<server><!-- 服务器元素项 -->
<id>server001</id><!-- 服务端server标识id(不是用户登陆Id),与distributionManagement中repository元素的Id相配 -->
<username>my_login</username><!-- 服务端鉴权用户名,登录服务器认证用 -->
<password>my_password</password><!-- 服务端鉴权用户密码,登录服务器认证用 -->
<privateKey>${usr.home}/.ssh/id_dsa
</privateKey><!-- 服务端鉴权时的私钥位置,私钥位置和私钥密码指定了一个私钥的路径(默认是${user.home}/.ssh/id_dsa) -->
<passphrase>some_passphrase</passphrase><!-- 服务端鉴权时使用的私钥密码 -->
<filePermissions>664</filePermissions><!-- 文件被创建时的权限:如果部署时会创建仓库文件或目录,这时便可使用权限(permission) -->
<directoryPermissions>775</directoryPermissions><!-- 目录被创建时的权限 -->
</server>
</servers>
<!-- 8.镜像仓库配置与管理:为仓库列表配置的下载镜像列表,高级设置请参阅镜像设置页面 -->
<mirrors>
<mirror><!-- 镜像仓库元素配置项 -->
<id>planetmirror.com</id><!-- 镜像仓库的唯一标识 -->
<name>PlanetMirror Australia</name><!-- 镜像仓库名称 -->
<url>http://downloads.planetmirror.com/pub/maven2</url><!-- 镜像仓库URL地址 -->
<mirrorOf>central</mirrorOf><!-- 被镜像的服务器Id标识 -->
</mirror>
</mirrors>
<!-- 9.多方式配置文件激活设置,可以修改构建过程。根据环境参数来调整构建配置的列表。settings.xml中的profile元素是pom.xml中profile元素的裁剪版本。
它包含了id,activation, repositories, pluginRepositories和 properties元素。
这里的profile元素只包含这五个子元素是因为这里只关心构建系统这个整体(这正是settings.xml文件的角色定位),而非单独的项目对象模型设置。
如果一个settings中的profile被激活,它的值会覆盖任何其它定义在POM中或者profile.xml中的带有相同id的profile -->
<profiles>
<profile><!-- 激活配置元素项 -->
<id>jdk-1.4</id><!-- 激活配置项标识Id -->
<!-- 9.1 自动触发profile的条件逻辑:Activation是profile的开启钥匙。
如POM中的profile一样,profile的力量来自于它能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。
settings.xml文件中的activeProfile元素可以包含profile的id。profile也可以通过在命令行,使用-P标记和逗号分隔的列表来显式的激活(如,-P test) -->
<activation>
<activeByDefault>false</activeByDefault><!-- profile激活标识,默认false -->
<!-- 激活方式①:JDK方式。当匹配的jdk被检测到,profile被激活 -->
<jdk>1.4</jdk>
<!-- 激活方式②:操作系统方式。当匹配的操作系统属性被检测到,profile被激活 -->
<os>
<name>Windows XP</name><!-- 激活profile的操作系统名 -->
<family>Windows</family><!-- 激活profile的操作系统所属族(如 'windows') -->
<arch>x86</arch><!-- 激活profile的操作系统体系结构 -->
<version>5.1.2600</version><!-- 激活profile的操作系统版本 -->
</os>
<!-- 激活方式③:文件方式。通过提供一个文件名检测该文件是否存在来激活profile。细分missing和exists两种激活方式,互斥使用 -->
<file>
<missing>${basedir}/file1.properties</missing><!-- missing方式:如果指定的文件不存在,则激活profile。-->
<exists>${basedir}/file2.properties</exists><!-- exists方式:如果指定的文件存在,则激活profile。 -->
</file>
<!-- 激活方式④ -->
<property>
<name>target-env</name>
<value>dev</value>
</property>
</activation>
<!-- 9.2 远程仓库配置与管理 -->
<repositories>
<repository><!-- 远程仓库元 -->
<id>jdk14</id><!-- 远程仓库标识Id -->
<name>Repository for JDK 1.4 builds</name><!-- 远程仓库名称 -->
<url>http://www.myhost.com/maven/jdk14</url><!-- 远程仓库URL地址 -->
<layout>default</layout><!-- 用于定位和排序构件的仓库布局类型(取值default/legacy) -->
<!--<snapshotPolicy>always</snapshotPolicy>-->
<releases><!-- 如何处理远程仓库里发布版本的下载。类型构建下载有releases和snapshots两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的策略 -->
<enabled>false</enabled><!-- 该仓库是否开启发布版构件下载,取值true/false -->
<updatePolicy>always
</updatePolicy><!-- 该元素指定更新发生的频率,取值always/daily(默认)/interval:X(X单位分钟)/never -->
<checksumPolicy>warn
</checksumPolicy><!-- 当Maven验证构件校验文件失败时处理操作,取值ignore(忽略)/fail(失败)/warn(警告) -->
</releases>
<snapshots><!-- 如何处理远程仓库里快照版本的下载(同上) -->
<enabled/><!-- 该仓库是否开启快照版构件下载,取值true/false -->
<updatePolicy/>
<checksumPolicy/>
</snapshots>
</repository>
</repositories>
<!-- 9.3 发现插件的远程仓库列表。仓库是两种主要构件的家。第一种构件被用作其它构件的依赖。这是中央仓库中存储的大部分构件类型。另外一种构件类型是插件。Maven插件是一种特殊类型的构件。
由于这个原因,插件仓库独立于其它仓库。pluginRepositories元素的结构和repositories元素的结构类似。每个pluginRepository元素指定一个Maven可以用来寻找新插件的远程地址。-->
<pluginRepositories><!-- (同9.3) -->
<pluginRepository>
<id/>
<name/>
<url/>
<layout/>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
</pluginRepository>
</pluginRepositories>
<!-- 9.4 对应profile的扩展属性列表:Maven属性和Ant中的属性一样,可以用来存放一些值。这些值可以在POM中的任何地方使用标记${X}来使用,这里X是指属性的名称。
属性有五种不同的形式,并且都能在settings.xml文件中访问。如果该profile被激活,则可以再POM中使用${user.install}
1. env.X: 在一个变量前加上"env."的前缀,会返回一个shell环境变量。例如,"env.PATH"指代了$path环境变量(在Windows上是%PATH%)。
2. project.x:指代了POM中对应的元素值。例如: <project><version>1.0</version></project>通过${project.version}获得version的值。
3. settings.x: 指代了settings.xml中对应元素的值。例如:<settings><offline>false</offline></settings>通过 ${settings.offline}获得offline的值。
4. Java System Properties: 所有可通过java.lang.System.getProperties()访问的属性都能在POM中使用该形式访问,例如 ${java.home}。
5. x: 在<properties/>元素中,或者外部文件中设置,以${someVar}的形式使用。 -->
<properties>
<tomcatPath>/path/to/tomcat/instance</tomcatPath>
<user.install>${user.home}/our-project</user.install>
</properties>
</profile>
</profiles>
<!-- 10.手动激活profiles的列表:按照profile被应用的顺序定义activeProfile。 该元素包含了一组activeProfile元素,每个activeProfile都含有一个profile id。
任何在activeProfile中定义的profile id,不论环境设置如何,其对应的profile都会被激活。如果没有匹配的profile,则什么都不会发生。例如,env-test是一个activeProfile,
则在pom.xml(或者profile.xml)中对应id的profile会被激活。如果运行过程中找不到这样一个profile,Maven则会像往常一样运行。 -->
<activeProfiles>
<activeProfile>alwaysActiveProfile</activeProfile>
<activeProfile>anotherAlwaysActiveProfile</activeProfile>
</activeProfiles>
</settings>
6.2 pom.xml 文件说明
<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/maven-v4_0_0.xsd">
<!-- 1.POM更新版本号 -->
<modelVersion>4.0.0</modelVersion>
<!-- 2.组织名 -->
<groupId>abc</groupId>
<!-- 3.项目工程名 -->
<artifactId>abc</artifactId>
<!-- 4.项目版本号 -->
<version>0.0.1-SNAPSHOT</version>
<!-- 5.项目打包方式 -->
<packaging>war</packaging>
<!-- 6.maven项目模板名 -->
<name>maven</name>
<!-- 7.maven项目模板描述-->
<description>description</description>
<!-- 8.依赖版本控制 -->
<properties>
<springframework.version>2.5.6</springframework.verson>
<!-- 只需在子模块添加<version>${springframework.version}</version>进行控制 -->
</properties>
<!-- 9.依赖资源集 -->
<dependencies>
<dependency><!-- 依赖项 -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<type>jar</type><!-- 依赖的类型,默认为jar,一般不声明 -->
<scope>test</scope> <!-- 依赖范围/作用域,取值compile/provided/runtime/system/test -->
<optional>true</optional> <!-- 标记依赖可选性(标记依赖项是否对外隐藏),取值true/false -->
<exclusions><!-- 排除依赖传递性(踢出传递依赖项) -->
<exclusion>
<groupId>abcd</groupId>
<artifactId>abcd</artifactId>
</exclusion>
</exclusions>
<classifier>classifier</classifier><!-- 拓展 -->
<systemPath>01_ITsoftPAN</systemPath><!-- 拓展 -->
</dependency>
</dependencies>
<!-- 10.项目构建 -->
<build>
<plugins><!-- 插件组 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<!-- 11.配置远程仓库 -->
<repositories>
<repository><!-- 设置远程版本库 直接收发布版本 不接受快照版本-->
<id>jboss</id> <!-- 如果是用central 就会覆盖中央仓库 -->
<name>JBoss Repository</name>
<url>http://repository.jboss.com/maven2/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots><!-- 同上releases -->
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<!-- 12.将该项目发布到远程仓库中 -->
<distributionManagement>
<repository>
<id>proj-release</id><!-- 这里的id是为了跟setting.xml中的username和userpassword的id匹配,有的仓库需要权限账户 -->
<name>Proj Release Repository</name>
<url>http://192.168.89.130</url>
</repository>
<snapshotRepository>
<id>proj-release</id>
<name>Proj Release Repository</name>
<url>http://192.168.89.130</url>
</snapshotRepository>
</distributionManagement>
</project>
6.3 maven常用命令说明
# ---------------实际应用-----------------------
# 1、刷新子模块版本号:
mvn versions:update-child-modules
# 2、重新打包到maven本地库:
mvn clean install -Dmaven.test.skip=true
mvn install
# 3、部署包到远程服务器
mvn clean deploy -Dmaven.test.skip=true
#---------------------一般常用命令--------------------------------
# 该命令打印出所有的java系统属性和环境变量
mvn help:system 自动在本用户下创建本地仓库(~/.m2/repository)
# 清理输出目录默认target/
mvn clean
mvn clean compile 清理编译
# maven test,但实际执行的命令有:clean:clean,resource:resources,compiler:compile, resources:testResources, compiler:testCompile,maven在执行test之前,会先自动执行项目主资源处理,主代码编译,测试资源处理,测试代码编译等工作,测试代码编译通过之后默认在target/test-calsses目录下生成二进制文件,紧接着surefile:test 任务运行测试,并输出测试报告,显示一共运行了多少次测试,失败成功等等
mvn clean test 清理测试
mvn clean package 清理打包
mvn clean install 清理将打包好的jar存入 本地仓库
mvn clean deploy 根据pom中的配置信息将项目发布到远程仓库中
echo %MAVEN_HOME% 查看maven安装路径
# ---------------------创建项目-----------------------------------
mvn -version/-v 显示版本信息
mvn archetype:generate 创建mvn项目,使用Archetype生成项目骨架
# 创建mvn项目
mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app
# 创建Maven的普通java项目:
mvn archetype:create -DgroupId=packageName -DartifactId=projectName
# 创建Maven的Web项目:
mvn archetype:create -DgroupId=packageName -DartifactId=webappName-DarchetypeArtifactId=maven-archetype-webapp
# ---------------------优化依赖命令-------------------------------
mvn dependency:list 显示所有已经解析的所有依赖
mvn dependency:tree 以目录树的形式展现依赖, 最高层为一层依赖 其次二层依赖 三层依赖....
mvn dependency:analyze 第一部分显示 已经使用但是未显示依赖的的 第二部分显示项目未使用的但是依赖的
# ---------------------第三方jar发布到远程仓库---------------------
mvn deploy:deploy-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar -DrepositoryId=maven-repository-inner -Durl=ftp://xxxxxxx/opt/maven/repository/
# ---------------------第三方jar安装到本地仓库---------------------
mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar -DdownloadSources=true -DdownloadJavadocs=true
#你是否因为记不清某个插件有哪些goal而痛苦过,你是否因为想不起某个goal有哪些参数而苦恼,那就试试这个命令吧,它会告诉你一切的.参数: 1. -Dplugin=pluginName 2. -Dgoal(或-Dmojo)=goalName:与-Dplugin一起使用,它会列出某个插件的goal信息,如果嫌不够详细,同样可以加-Ddetail.(注:一个插件goal也被认为是一个 “Mojo”)
mvn help:describe -Dplugin=help -Dmojo=describe
# ---------------------其他命令-----------------------------------
mvn -e 显示详细错误 信息.
mvn validate 验证工程是否正确,所有需要的资源是否可用。
mvn test-compile 编译项目测试代码。 。
mvn integration-test 在集成测试可以运行的环境中处理和发布包。
mvn verify 运行任何检查,验证包是否有效且达到质量标准。
mvn generate-sources 产生应用需要的任何额外的源代码,如xdoclet。
👉该部分参考CSDN@红月修罗:Maven 详解及常用命令
参考外链接1:@汪了个王
参考外链接2:@不服輸的麻雀
参考外链接2:@神兽汤姆猫
参考视频链接:@黑马程序员#Bilibili
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)