ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-04-29 14:00:55  阅读:166  来源: 互联网

标签:Maven java 项目 仓库 jar 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 项目根目录/

     ---/src

     ------------/main                          【主程序java代码和配置文件】

     ---------------------/java              【程序包和包中的java文件】

     ---------------------/resources     【java程序中要使用的配置文件】

     ------------/test                           【测试程序代码和文件(可以没有)】

     ---------------------/java              【测试程序包和包中的java文件】

     ---------------------/resources     【测试java程序中要使用的配置文件】

      ---/pom.xml                               【maven的核心文件(maven项目必须有)】

 

 

2、仓库:

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

1)仓库的分类:

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

 

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

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

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

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

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

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

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

 

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

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

<groupId>公司域名的倒写</groupId>
<artifactId>自定义项目名称</artifactId>
<version>自定版本号</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() {
        //测试 HelloMaven 中的add方法是否正确
    }
}


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 目录下。

 

标签:Maven,java,项目,仓库,jar,maven,构建,文件
来源: https://www.cnblogs.com/Burning-youth/p/16206385.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有