【Maven】如何构建maven项目;maven 核心知识

maven 思维导图:

ps:资料出处 — 动力节点资料广场

笔记第一部分:

1、传统开发项目的问题(没有使用maven管理的项目):

1)很多模块之间有关系,手工管理关系,比较繁琐。

2)需要很多第三方功能,需要很多jar文件,需要手工从网络中获取各个jar 文件。

3)需要管理jar的版本, 需要的是mysql.5.1.5.jar ,那就不能随便找一个 mysql 版本。

4)管理jar文件之间的依赖, 你的项目要使用 a.jar,而 a.jar 需要使用 b.jar 里面的类。所以必须首先获取到 b.jar 才可以使用 a.jar。

a.jar需要b.jar这个关系叫做依赖,或者你的项目中要使用mysql的驱动, 也可以叫做项目依赖mysql驱动

2、maven 管理项目的优点:

1)maven可以帮助管理jar文件,管理你需要的jar版本。

2)自动下载jar和它的文档,源代码。

3)管理jar之间的依赖,a.jar需要b.jar ,maven会自动下载b.jar。

4)帮你编译程序,把java编译为class。

5)帮你测试你的代码是否正确。

6)帮你打包文件,形成jar文件,或者war文件。

7)帮你部署项目。

3、项目的构建:

构建是面向过程的,就是一些步骤,完成项目代码的编译,测试,运行,打包,部署等等。

maven支持的构建包括有:

1)清理, 把之前项目编译的东西删除掉,为新的编译代码做准备。

2)编译, 把程序源代码批量地编译为执行代码, java —> class文件

maven可以同时把成千上百的文件编译为class;javac一次编译一个文件。

3)测试, maven可以执行测试程序代码,验证你的功能是否正确。

批量的,maven同时执行多个测试代码,同时测试很多功能。

4)报告, 生成测试结果的文件, 测试通过没有。

4、maven核心概念:

①POM :文件名称是pom.xml , pom翻译过来叫做项目对象模型,maven把一个项目当做一个模型使用。

②约定的目录结构 :maven项目的目录和文件的位置都是规定的。

③坐标 :一个唯一的字符串,用来表示资源的。

④依赖管理 :管理你的项目可以使用jar文件

⑤仓库管理(非重点) :资源存放的位置

⑥生命周期(非重点) :maven工具构建项目的过程,就是生命周期。

⑦插件(非重点):执行maven构建的时候用的工具是插件。

笔记第二部分:

1、maven约定的目录结构:

maven 项目根目录/

2、仓库:

仓库是存放东西的, 存放maven使用的 jar 和 我们项目使用的jar。

1)仓库的分类:

本地仓库:就是你的个人计算机上的文件夹,存放各种jar。

远程仓库:在互联网上的,使用网络才能使用的仓库。

中央仓库:最权威的, 所有的开发人员都共享使用的一个集中的仓库,

https://repo.maven.apache.org (中央仓库的地址)

中央仓库的镜像:就是中央仓库的备份, 在各大洲,重要的城市都是镜像。

私服,在公司内部,在局域网中使用的, 不是对外使用的。

2)仓库的使用,maven仓库的使用不需要人为参与。

开发人员需要使用mysql驱动 ?maven首先查 —> 本地仓库 —> 私服 —> 镜像 —> 中央仓库

3、pom项目对象模型(pom.xml):

1)坐标:唯一值, 一个项目在互联网中的唯一标识。

<groupid>&#x516C;&#x53F8;&#x57DF;&#x540D;&#x7684;&#x5012;&#x5199;</groupid>
<artifactid>&#x81EA;&#x5B9A;&#x4E49;&#x9879;&#x76EE;&#x540D;&#x79F0;</artifactid>
<version>&#x81EA;&#x5B9A;&#x7248;&#x672C;&#x53F7;</version>

2)packaging:打包后压缩文件的扩展名,默认是jar ,web应用是war(可以不写, 默认是jar)。

3) 依赖:dependencies 和 dependency ,相当于是 java 代码中的 import。

<!-- 你的项目中要使用的各种资源说明, 比我的项目要使用mysql驱动 -->
<dependencies>
    <!-- "import导包" -->
    <dependency>
        <groupid>mysql</groupid>
        <artifactid>mysql-connector-java</artifactid>
        <version>5.1.9</version>
    </dependency>
</dependencies>

4)properties:设置属性。

5)build : maven在进行项目的构建时, 配置信息,例如指定编译java代码使用的jdk的版本等。

4、测试:

在 maven 项目中的 src/test/java 目录下,创建测试程序。

例如你要测试HelloMaven ,

import org.junit.Test;

public class TestHelloMaven {
    @Test
    public void testAdd() {
        //&#x6D4B;&#x8BD5; HelloMaven &#x4E2D;&#x7684;add&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x6B63;&#x786E;
    }
}

testAdd 叫做测试方法,定义规则:

1)方法是public的,必须的。

2)方法没有返回值,必须的。

3)方法名称是自定义的,推荐是Test + 方法名称。

4)在方法的上面加入 @Test。

第三部分笔记:

1、资源插件(mybatis课程中会用到这个作用):

<build>
    <resources>
        <resource>
            <!-- 文件所在的目录 -->
            <directory>src/main/java</directory>
            <!-- 包括目录下的 .properties,.xml 文件都会扫描到 -->
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <!-- filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 -->
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

2、如何将项目压缩包部署到tomcat服务器上:

1)把你的项目中所有的class文件,配置文件等所有资源放到一个压缩文件中,这个压缩文件就是项目的结果文件。

2)把生成的压缩文件放到 tomcat 的 webapps 目录下。

Original: https://www.cnblogs.com/Burning-youth/p/16206385.html
Author: 猿头猿脑的王狗蛋
Title: 【Maven】如何构建maven项目;maven 核心知识

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586404/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MongoDB学习笔记-1、NoSQL基础

    1.1、NoSQL概念 NoSQL并非字面的”不是SQL”或者”非SQL”,而是NoSQL=Not Only SQL,即&#8221…

    Java 2023年6月5日
    069
  • 旅游线路查询

    旅游线路查询—参数传递 header.html页面: //给搜索按钮绑定单击事件,获取搜索输入框的内容 $("#search-button").click(fu…

    Java 2023年6月6日
    0110
  • 安装教程—条龙服务—搞定重装系统后的软件安装

    背景:因为电脑原因,导致我经常重装系统,然后就需要安装很多东西,经常忘了如何安装,总之就是很烦,然后就需要搜索某某东西如何安装以及配置,毕竟我记忆力不好,只能一个一个去搜,这个过程…

    Java 2023年6月10日
    079
  • Maven 依赖调解源码解析(五):同一个文件内声明,后者覆盖前者

    这次我们让 A 直接依赖 X,且在 A 的 pom.xml 中声明两次 X,分别为 1.0 和 2.0 版本。内容如下: 这个场景比较简单,不涉及调解器,我们直接对着图看一下主流程…

    Java 2023年6月16日
    049
  • 28.多线程,分组服务端,1万客户端连接,代码优化

    客户端只发送数据,服务端只接收数据。 服务端增加,用户接入,离开函数。 客户端增加,判断是否成功连接服务端标志。 问题:服务端接收客户端数据包,不稳定,波动比较大。 客户端代码: …

    Java 2023年5月29日
    073
  • JAVA常量池

    Java中的常量池,实际上分为两种形态: 静态常量池和 运行时常量池。一、 静态常量池 即*.class文件中的常量池,class文件中的常量池不仅仅包含字符串(数字)字面量,还包…

    Java 2023年5月29日
    078
  • JavaScript基本语法

    JavaScript(js)注释 js的注释非常简单,就和java一样, //, /**/,分别对应多行注释和单行注释,当然要在 <script>….</sc…

    Java 2023年6月5日
    088
  • 汉诺塔问题分治求解

    汉诺塔问题 在经典汉诺塔问题中,有 3 根柱子及 n 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的…

    Java 2023年6月16日
    088
  • 初踩坑JS加载与audio接口:点击头像开始/暂停背景音乐

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月5日
    066
  • Seata源码分析——SessionManager

    事务管理器 SessionManager SessionLifecycleListener AbstractSessionManager 事务存储管理器 RedisTransact…

    Java 2023年6月9日
    0204
  • Vue3+Vue-cli4项目中使用腾讯滑块验证码

    Vue3+Vue-cli4项目中使用腾讯滑块验证码 简介: 滑块验证码相比于传统的图片验证码具有以下优点: 验证码的具体验证不需要服务端去验证,服务端只需要核验验证结果即可。 验证…

    Java 2023年6月8日
    076
  • Spring Boot缓存应用实践

    缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。 本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。 一、…

    Java 2023年5月30日
    078
  • 对象数组排序 和 类比JDK实现 sort()的方法

    1.定义自己的 MyComparable 接口 1 package Test.treeSetDemo; 2 3 public interface MyComparable { 4 …

    Java 2023年6月8日
    047
  • 实战派 | Java项目中玩转Redis6.0客户端缓存!

    原创:微信公众号 &#x7801;&#x519C;&#x53C2;&#x4E0A;,欢迎分享,转载请保留出处。 哈喽大家好啊,我是Hydra。 在前…

    Java 2023年6月5日
    098
  • SpringBoot+SpringCloud

    摘自《Java微服务分布式架构企业实战》 1 Spring Boot Spring Boot是用于构建微服务的基础框架,可以轻松地整合Spring Cloud实现系统服务化,在学习…

    Java 2023年5月30日
    056
  • Dism++

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    070
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球