【Maven学习】maven项目构建

之前也用过maven,但一直都是知其然不知所以然,正好有时间,就从头完整的理一遍,加深印象。本篇将学习maven如何去构建项目。

Maven是什么?优点是啥?

Maven是java项目管理工具,支持依赖管理和项目的构建。

  • 依赖管理:只需要在pom.xml中,写入需要引用的jar包,自动下载管理,开发者不用自己去下载jar并下载它依赖的jar,也不会有jar包的冲突问题,新人上手直接一个pom文件,不用拷贝大量的jar文件。
  • 项目的构建:内置许多的插件,支持多种任务,包括清理、编译、测试、打包、部署、发布。

Maven的仓库

仓库是在某个统一的位置存储所有项目的共享的构件。

本地仓库:顾名思义就是在本地计算机上的仓库,所有本地项目共享构件,如果本地不存在,就会从中央仓库下载到本地来。

中央仓库:是Maven在http://repo.maven.apache.org/maven2这个地址存放的构件。

私服:架在局域网内的仓库服务,私服代理广域网的远程仓库,供局域网内的Maven用户使用。

修改本地仓库默认存放位置

修改maven的setting.xml文件,maven本地仓库默认存放在用户的/.m2/respositoy目录下,我们在settint.xml文件使用localReposity来更改默认保存位置。更改为c:/fp/repository目录,这样就把jar包下载到我们配置的目录下。如下图所示:

maven目录结构

MavenProjectRoot(项目根目录)
   |----src
   |     |----main
   |     |         |----java ——存放项目的.java文件
   |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
   |     |----test
   |     |         |----java ——存放所有测试.java文件,如JUnit测试类
   |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
   |----target ——项目输出位置
   |----pom.xml ----用于标识该项目是一个Maven项目

本地创建项目目录

我们现在c:/fp目录下创建文件夹mavenDemo作为新项目的根目录,然后按照下图添加文件夹和pom文件。

在pom文件中添加如下内容:

<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>com.maven</groupId>
  <!--项目名-->
  <artifactId>Hello</artifactId>
  <!--项目版本-->
  <version>0.0.1-SNAPSHOT</version>
  
    <!--添加依赖的jar包-->
    <dependencies>
        <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>        
        
    </dependencies>
</project>

Maven命令

首先理解maven的生命周期,因为maven执行一个生命周期的命令时,会执行之前所有的生命周期操作,每一个生命周期都是对应的插件在执行。

mvn clean:清理项目缓存的输出。

mvn compile: 编译,将Java 源程序编译成 class 字节码文件。

mvn package:打包(jar等)到本项目的target下

mvn install:把target下打的包(jar等)安装到本地仓库,可以供其他项目使用

mvn deploy:将打包的文件发布到远程参考,提供其他人员进行下载依赖

mvn clean package:会比mvn package多一个clean的生命周期。

mvn test:执行测试,并生成class文件到target/test-classes目录

实践检验真理

上面创建的项目的初始目录结构如下:

mvn compile命令编译项目 

可以看出,mvn compile会执行两个生命周期 resourcescompile,每一个生命周期都是对应的插件在执行,同时在当前目录生成target目录,里面包含编译好的class文件。

mvn clean:清理项目缓存的输出。

即删除了刚才生成的target目录,如下图

mvn package:打包(jar等)到本项目的target下

mvn package共执行了6个生命周期不包括clean生命周期,并打包jar到本项目的target目录下,如下图所示

mvn clean package:会比mvn package多一个clean的生命周期。

mvn install:把target下打的包(jar等)安装到本地仓库,可以供其他项目使用

从上图中可以看出,mvn install会执行之前的6个生命周期,每个生命周期都有对应的插件在执行。并且mvn install 会把打包的jar文件安装到本地仓库,如下图,

mvn test:执行测试,并生成class文件到target/test-classes目录

eclipse中的maven命令

最后说一下eclipse中的maven命令,eclipse提供了和maven一样的基本命令

maven test

maven install

maven clean 

也可以使用maven build...自定义组合maven 命令,并保存。

Maven update project

当pom.xml文件改动之后,或者有依赖的jar包在本地maven仓库( local repository )中有更新和内容改变,需要Eclipse执行Maven/Update Project来更新引入在本地maven库中的外部依赖的jar包。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值