maven的一些基本概念

仓库
  1. 远程仓库/中央仓库
  2. 本地仓库
  3. 私有服务器

常规项目开发中,会直接连接远程仓库或国内镜像仓库,在构建项目时会自动从远程仓库或镜像仓库下载依赖到本地仓库,如下图所示。
在这里插入图片描述
企业开发模式中,通常会搭建自己的私有服务器。私有服务器不仅保存了从中央仓库下载的依赖,也保存了企业内部自研的软件工具。企业内部员工开发项目时,会连接企业内部的私有服务器,从私有服务器上下载依赖以完成项目构建,如下图所示。
在这里插入图片描述

配置
  1. 全局配置文件settings.xml
  2. 项目配置文件pom.xml

在settings.xml、pom.xml这两个配置文件中如果存在相同配置项,优先级pom.xml>settings.xml

settings.xml中有比较多的标签,下面简单作一下介绍。

  • localRepository,本地仓库,默认值是${user.home}/.m2/repository,比如C:\Users\admin\.m2\repository
  • proxies,配置连接仓库的代理。
  • servers,访问远程仓库所在服务器时需要的用户认证信息就是在这里进行配置。
    比如,username/password认证,
<server>
  <id>deploymentRepo</id>
  <username>repouser</username>
  <password>repopwd</password>
</server>

比如,privateKey/passphrase认证,

<server>
  <id>siteServer</id>
  <privateKey>/path/to/private/key</privateKey>
  <passphrase>optional; leave empty if not used.</passphrase>
</server>
  • profiles,在这里全局配置项目构建时的参数,一般用它来完成特定环境的定制化操作,比如配置全局的jdk版本。扩展项activation,用于指定某些条件下自动切换profile配置。
<profiles>
	<profile>
	  <id>jdk-1.8</id>
	
	  <activation>
	    <jdk>1.8</jdk>
	    <activeByDefault>true</activeByDefault>
	  </activation>
	  
	  <properties>
	    <maven.compiler.source>1.8</maven.compiler.source>
	    <maven.compiler.target>1.8</maven.compiler.target>
	    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	  </properties>
	</profile>
</profiles>
  • activeProfiles,手动激活profile配置。
  • properties,类似在编程语言中的定义变量。比如, ${java.version}的值就是1.8
 <properties>
     <java.version>1.8</java.version>
 </properties>
  • repositories,配置远程仓库,用于项目开发时的多仓库配置。比如,
<repositories>
    <repository>
        <id>spring-milestones</id>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
  • pluginRepositories。
  • interactiveMode,是否需要和用户交互(英文解释更好理解些:This will determine whether maven prompts you when it needs input),默认值是true,通常不需要修改。
  • offline,是否启用离线模式,默认是false
  • pluginGroups,如果没有提供插件的groupId,会自动搜索groupId,一般情况下很少配置。
gav坐标
  1. groupId,组织名称
  2. artifactId,项目名称
  3. version,项目版本

groupId、artifactId和version组成一个构件的准确的、唯一的描述,称为构件的gav坐标。

下面简单介绍下版本号。通常版本号的结构是这样的:软件名称.主版本号.小版本号.阶段版本号.字母版本号。
其中,

  • 主版本号,涉及软件重大功能的新增或修改。
  • 小版本号,涉及软件较小功能的新增或修改。
  • 阶段版本号,涉及软件Bug修复。
  • 字母版本号,通常也成为 里程碑版本号,比如有,
    • ALPHA(大写字母A),表示软件正式开启开发,正在实现主要功能,是内测版本。
    • BETA(大写字母B),表示已经实现基本功能,修正了一些严重错误,但依然有bug,是公测版本。
    • RC,候选版本,表示项目基本成熟,即将发行。
    • STABLE/RELEASE/R/GA,正在发行的稳定版本。
    • FINAL,最终版本。
mvn命令
  • 项目构建命令
    • mvn -version,查看maven的版本。
    • mvn archetype:generate,构建maven项目。
  • 项目清理/编译/打包
    • mvn clean,清理项目生成的文件数据,其实就是清理掉target目录下的文件数据。
    • mvn compile,将Java源码编译为字节码文件,并将编译后的文件保存在target目录下。
    • mvn packge,打包生成对应的war包或jar包,并保存在target目录下,方便后续部署使用。
  • 项目运行/测试/发布
    • mvn tomcat:run,使用maven内置的tomcat插件运行项目。
    • mvn test,自动执行test目录下的测试用例,并生成对应的测试报告、文档。
    • mvn site,生成报表数据。
    • mvn dependency:tree,查看当前依赖树。
    • mvn install,打包生成对应jar包或war包,并添加到本地仓库中。
    • mvn deploy,将本地仓库的jar包或war包发布到私有服务器或镜像仓库。
生命周期
  • clean lifecycle
    在这里插入图片描述
  • default lifecycle
    在这里插入图片描述
  • site lifecycle
    在这里插入图片描述
构建项目

使用IDEA来构建项目很简单,下面主要讲下如何通过命令来构建项目。
首先,执行以下命令行来构建一个普通的java项目。

mvn archetype:generate -DgroupId=org.exam -DartifactId=exam01 -DarchetypeArtifactId=maven-archetype-quickstart

-DgroupId,指定groupId。
-DartifactId,指定artifactId。
-DarchetypeArtifactId,指定项目构建原型。其中,maven-archetype-quickstart将构建普通的java项目,maven-archetype-webapp将构建web项目。
在这里插入图片描述
然后,mvn compile来编译项目。
在这里插入图片描述
最后,mvn exec:java -Dexec.mainClass="com.exam.App"来运行项目。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值