从0到0.1学习 maven(一:概述及简单入门)

该文章为maven系列学习的第一篇,共三篇
第二篇快速入口:从0到0.1学习 maven(二:坐标、依赖和仓库)
第三篇快速入口:从0到0.1学习 maven(三:声明周期、插件、聚合与继承)

概述

从没用的有趣小知识开始

Maven可以翻译成 “知识的累积”,“专家/行家”。

Maven是什么?

  1. 服务于java的自动化构建工具
  • 什么是构建?

动态web工程经过编译得到的编译结果直接部署到服务器上的整个过程

构建的环节:clean->compile->test->report->package->install->deploy

  • ps:
    package过程把动态web工程打war包,java工程打jar包
    deploy时将动态Web工程生成的war包复制到servlet容器下,可使其运行
  1. 依赖管理工具与项目信息管理工具
  • 类库是通过依赖的方式引入进项目,maven通过其坐标系统可以精准的定位每一个artifacts/控件,进行有序地依赖管理。
  • 此外,maven也管理了如开发者列表,项目描述等琐碎的项目信息。

为什么用Maven?

  1. 把一个项目拆分成多个工程
  2. 把jar包保存在仓库中
  3. 可使用统一规范的方法去下载jar包
  4. 预防jar包版本不一致
  5. 自动导入依赖包

使用与配置入门

目录结构

在这里插入图片描述
可以看到一共有四个文件夹和三个文件。

  • bin:包含了maven的运行脚本。命令行中命令例如“mvn -v”就是在调用这些脚本。
  • boot:存放类加载器框架,用于加载自己的类库。
  • conf:包含了settings.xml,修改该文件可以全局定制maven的行为。或将该文件复制到~/.m2/中,控制该用户下的maven。
  • lib:包含了maven运行时需要的所有类库。

编写pom

pom是一个xml文件,因此要遵守xml的格式,包括xml头与各元素。
project标签内:
\qquad 坐标定义三要素:groupId,artifactId,version
\qquad - groupId: 项目的组名
\qquad - artifactId:该项目在组中的唯一ID
\qquad - verion:该项目的版本
\qquad - name(非必须):项目的名字

clean:清理输出文件夹/target
compile:将主代码编译到target/class文件夹

maven中默认的项目主代码位于/src/main/java
默认的测试代码位于/src/test/java

  • 测试部分使用JUnit/@Test/assertEquals() 此处不详细展开了

使用Archetype生成骨架

先创建好一个空的目录,若是maven3则运行

mvn archetype:generate

运行后会开始下载并列出一大堆archetype,按照默认值回车就好,再填好前面说的三要素,就创建成功了。

小彩蛋:直接运行包含main的jar

step1:编写一个带有main的class(可以试一下上面的archetype创建)
step2:在project→build→plugins下添加插件maven-shade-plugin

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>1.2.1</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals><goal>shade</goal></goals>
            <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
            <mainClass>com.ptyp.App(这里写你自己的main所在的类)</mainClass>
            </transformer> </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

step3:执行mvn clean install
在这里插入图片描述
可以看到target文件夹中出现了两个jar,其中original是不带main的,另外一个是带main的,我们点进去看看META-INF\MANIFEST.MF文件
在这里插入图片描述
发现它多了一行Main-Class

step4:运行该jar文件:java -jar jar名.jar,成功打印~
在这里插入图片描述
彩蛋结束

第一篇完




参考

  1. 《Maven实战》- 许晓斌
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值