Maven项目管理工具使用教程

一、Maven是什么?

Maven 是一个项目管理工具,可以对 Java 项目进行构建依赖管理;Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。

在创建Java项目时会使用第三方类库,需要引入许多jar包,一个jar包有时又会引用其他的jar包;jar包之间的依赖复杂且十分繁琐,Maven就是帮我们管理这些复杂的依赖关系,快速构建一个项目。

二、Maven安装与配置  

菜鸟教程Maven 环境配置:https://www.runoob.com/maven/maven-setup.html

三、Maven使用

Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能的遵守这样的目录结构。

基本命令

  • -v查询Maven版本,检查maven是否安装成功。

  • compile编译,将java源文件编译成class文件

  • clean删除target文件夹

  • package项目打包

  • test测试项目,执行test目录下的测试用例

  • install:安装,将当前项目放到Maven的本地仓库中

构建Java项目

要创建一个简单的 Java 应用,我们将使用 maven-archetype-quickstart 插件

mvn archetype:generate -DgroupId=com.csdn.demo -DartifactId=springExample -DarchetypeArtifactId=maven-archetype-quickstart

参数说明:

  • -DgourpId: 组织名(也是包的目录结构),公司域名的反写 + 项目名称
  • -DartifactId: 项目名-模块名
  • -DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart,创建一个简单的 Java 应用
  • -DinteractiveMode: 是否使用交互模式 true / false

输入命令之后,maven 会提示我们输入版本号,这里可以直接定义版本号也可以直接回车,接着 maven 会提示当前要创建项目的基本信息,输入 y 然后回车确认。 

此时项目已创建好,可以在pom.xml中添加依赖开始开发了。

用Maven执行程序

这里用 maven 执行 java 程序,-Dexec.mainClass 参数指定 main 方法所在类。(注:修改文件后都要使用 mvn compile 重新编译,然后再运行)

mvn compile
mvn exec:java -Dexec.mainClass="com.csdn.demo.App"

常用Archetype

maven-archetype-quickstart 默认的Archetype,基本内容包括:

  • 一个包含junit依赖声明的pom.xml
  • src/main/java主代码目录及一个名为App的类
  • src/test/java测试代码目录及一个名为AppTest的测试用例

maven-archetype-webapp 一个最简单的Maven war项目模板,当需要快速创建一个Web应用的时候可以使用它。生成的项目内容包括:

  • 一个packaging为war且带有junit依赖声明的pom.xml
  • src/main/webapp/目录
  • src/main/webapp/index.jsp文件
  • src/main/webapp/WEB-INF/web.xml文件

Maven仓库

项目中依赖的第三方库所在的位置叫做仓库。

在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件;Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。

maven请求构建时,先请求本地仓(存在则直接在本地仓库获取),如果配置了远程仓库私服,则请求私服;私服中没有找到则继续请求中央仓库(由 Maven 社区提供的仓库,其中包含了大量常用的库),找到后会在本地仓库缓存一份,如果在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。

阿里云仓库

Maven 仓库默认在国外, 国内使用难免很慢,我们可以更换为阿里云的仓库。

第一步:修改 maven 根目录下的 conf 文件夹中的 setting.xml 文件,在 mirrors 节点上,添加内容如下:

<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
</mirrors>

第二步:pom.xml文件里添加:

<repositories>  
        <repository>  
            <id>alimaven</id>  
            <name>aliyun maven</name>  
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
            <releases>  
                <enabled>true</enabled>  
            </releases>  
            <snapshots>  
                <enabled>false</enabled>  
            </snapshots>  
        </repository>  
</repositories>

Maven坐标

在Maven中,坐标是Jar包的唯一标识,Maven通过坐标在仓库中找到项目所需的Jar包。

如下代码中,groupId 和 artifactId 构成了一个Jar包的坐标:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.1</version>
</dependency>
  • groupId:所需Jar包的项目名
  • artifactId:所需Jar包的模块名
  • version:所需Jar包的版本号
  • packaging (可选):定义项目打包方式(默认构建成jar)

maven坐标查询网址:

聚合

将多个项目同时运行就称为聚合,只需在pom中作如下配置:

<modules>
    <module>module-nameA</module>
    <module>module-nameB</module>
</modules>

继承

在聚合多个项目时,如果这些被聚合的项目中需要引入相同的Jar,那么可以将这些Jar写入父pom中,各个子项目继承该pom。

  • 父pom配置:(父模块的打包方式必须为pom)
<groupId>com.companyname.groupname</groupId>
<artifactId>Root</artifactId>
<dependencies>
    <dependency>
        <groupId>com.companyname.groupname</groupId>
        <artifactId>App-Core-lib</artifactId>
        <version>1.0</version>
    </dependency>
</dependencies>  
  • 子pom配置:
<parent>
    <artifactId>Root</artifactId>
    <groupId>com.companyname.groupname</groupId>
    <version>1.0</version>
</parent>

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值