Java基础教程 - 14 Maven项目

更好的阅读体验:点这里 ( www.doubibiji.com

14 Maven项目

Java 为什么那么强大,很大一部分原因是在实际的开发中,可以将别人开发的模块引入到我们自己的项目中,这样别人开发好了,我拿来就可以使用,很多复杂的功能也不用我们再去开发,而且别人开发的功能通常经过广泛的测试和验证,安全性和稳定性也得到保证,我们直接使用既可以提高开发效率,又可以提高项目质量。

14.1 jar包

那么如何在我们的项目中引入第三方开发的模块呢?

首先在 Java 中,可以将第三方的模块作为依赖引入到我们自己的项目中。这些依赖一般是以 Jar 包的方式存在。Jar(Java Archive)包是 Java 的一种文档格式,与平台无关,可将多个文件合成一个文件。JAR 包本质上是一个类的工具包,引入 Jar 包后,就可以直接使用其中的类。

通过引入第三方 Jar 包,可以快速、安全的在我们的项目中使用别人开发好的功能。

但是在实际的开发中,项目会引入很多很多的第三库,也就是在项目中会存在很多很多的 jar 包,如何清晰、规范的管理这些 jar 包也是一个问题。这个时候我们可以使用 Maven 来对项目进行构建和依赖的管理。

14.2 新建一个 Maven 项目

使用 IDEA 新建一个 Java 项目:

Build system 选择使用 Maven

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

新建完项目,项目结构如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

后面我们新建 java 类,可以在 java 目录下新建包,在包下新建类就可以了。

resources 目录可以放一些资源文件,例如项目的配置文件。

pom.xmlMaven 用来管理项目的配置文件,用来管理项目结构和项目依赖等。

14.3 引入第三方依赖

我们在实际的开发中,经常会用到一些方法,例如判断字符是否为空,判断集合是否为空等,这些方法 JDK 中虽然有提供,但是使用起来还是不够方便,有很多第三方提供了工具包,将这些处理封装成了工具类,其中用的比较多的是 Hutool 包(官网:www.hutool.cn)。

下面就以在项目中引入 hutool 包依赖为例,介绍一下如何使用 Maven 引入hutool 包依赖。

首先项目在上面已经建好了。

1 引入依赖

在项目下的 pom.xml 中的 <dependencies> 标签下添加如下内容:

<!-- 引入hutool -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.26</version>
</dependency>

此时 pom.xml 内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<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.doubibiji</groupId>
    <artifactId>hello-maven</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- 引入hutool -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.26</version>
        </dependency>
    </dependencies>

</project>

添加完依赖配置可能会报红,因为虽然添加了依赖,但是对应的依赖 jar 包还没有下载下来,此时可以右键 pom.xml 加载项目,会重新下载依赖。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此时查看项目下依赖,也可以看到 hutool 包的依赖:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2 使用第三方类

hutool 包依赖已经引入了,下面可以使用 hutool 包中的类了。

新建包和类,名称你自己定,例如:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


然后就可以编写 HutoolTest 测试类了:

下面简单使用了一下字符串、集合、时间的工具类,hutool 包中有很多的工具类,这里就不一一介绍了。

package com.doubibiji.hellomaven;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class HutoolTest {
    public static void main(String[] args) {
        String abc = "";
        // 字符串工具类
        if (StrUtil.isEmpty(abc)) {
            System.out.println("abc为空");
        }

        List<String> List = new ArrayList<>();
        // 集合工具类
        if (CollUtil.isEmpty(List)) {
            System.out.println("List为空");
        }


        Date date = new Date();
        // 时间工具类,默认格式
        System.out.println(DateUtil.formatDateTime(date));
        // 指定格式
        System.out.println(DateUtil.format(date, "yyyy-MM-dd HH:mm"));

        LocalDateTime dateTime = LocalDateTime.now();
        // 新的时间工具类,默认格式
        System.out.println(LocalDateTimeUtil.formatNormal(dateTime));
        // 指定格式
        System.out.println(LocalDateTimeUtil.format(dateTime, "yyyy-MM-dd HH:mm"));
    }
}

上面简单讲解了一下使用 Maven 为项目引入第三方的依赖 Jar 包,使用第三方 jar 包中提供的功能。Maven 更复杂的功能需要单独学习 Maven 教程, 这里就不介绍了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/692664.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android Media Framework(三)OpenMAX API阅读与分析

这篇文章我们将聚焦Control API的功能与用法&#xff0c;为实现OMX Core、Component打下坚实的基础。 1、OMX_Core.h OMX Core在OpenMAX IL架构中的位置位于IL Client与实际的OMX组件之间&#xff0c;OMX Core提供了两组API给IL Client使用&#xff0c;一组API用于管理OMX组件…

Mysql使用中的性能优化——批量插入的规模对比

在《Mysql使用中的性能优化——单次插入和批量插入的性能差异》中&#xff0c;我们观察到单次批量插入的数量和耗时呈指数型关系。 这个说明&#xff0c;不是单次批量插入的数量越多越好。本文我们将通过实验测试出本测试案例中最佳的单次批量插入数量。 结论 本案例中约每次…

Vue3中的常见组件通信之$attrs

Vue3中的常见组件通信之$attrs 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $re…

【机器学习基础】Python编程07:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言&#xff0c;它在机器学习领域中的重要性主要体现在以下几个方面&#xff1a; 简洁易学&#xff1a;Python语法简洁清晰&#xff0c;易于学习&#xff0c;使得初学者能够快速上手机器学习项目。 丰富的库支持&#xff1a;Python拥有大量的机…

树莓派4b安装宝塔面板

1、打开命令窗口&#xff0c;执行如下命令 #更新 sudo apt-get update sudo apt-get upgrade #切换root权限 sudo su root #安装宝塔面板 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh安装过程有点久&#xff0c;会持…

如何远程连接Linux服务器?

远程连接Linux服务器是通过网络连接到位于远程位置的Linux服务器&#xff0c;以进行服务器管理和操作。远程连接使得系统管理员可以方便地远程访问服务器&#xff0c;进行配置、维护和故障排除等操作&#xff0c;而不必亲自在服务器前工作。以下是一些常用的远程连接方法&#…

智慧社区整体解决方案

1.智慧社区整体建设方案内容 2.整体功能介绍

NASA数据集——SARAL 近实时增值业务地球物理数据记录海面高度异常

SARAL Near-Real-Time Value-added Operational Geophysical Data Record Sea Surface Height Anomaly SARAL 近实时增值业务地球物理数据记录海面高度异常 简介 2020 年 3 月 18 日至今 ALTIKA_SARAL_L2_OST_XOGDR 这些数据是近实时&#xff08;NRT&#xff09;&#xff…

现代信号处理13_贝叶斯统计Bayesian Statistic(CSDN_20240609)

贝叶斯理论 在传统的统计中&#xff0c;我们对数据是由一定认识的&#xff0c;这种认识一般是指数据的统计模型&#xff08;Statistical Model&#xff09;f(x|θ) &#xff0c;其中θ 通常指未知参数&#xff08;Unknown Parameter&#xff09;&#xff0c;x 是已经获得的数据…

LabVIEW电机槽楔松动声测系统

LabVIEW电机槽楔松动声测系统 开发了一种利用LabVIEW软件和硬件平台&#xff0c;为大型电机设计的槽楔松动声测系统。该系统通过声波检测技术&#xff0c;实现了对电机槽楔是否松动的快速准确判断&#xff0c;极大地提高了检测效率和安全性。 项目背景 大型电机在运行过程中…

[图解]企业应用架构模式2024新译本讲解11-领域模型4

1 00:00:00,160 --> 00:00:01,870 好&#xff0c;到这里的话 2 00:00:02,620 --> 00:00:05,060 文字处理器的产品对象就生成了 3 00:00:06,880 --> 00:00:09,180 同样下面就是电子表格 4 00:00:10,490 --> 00:00:11,480 电子表格也同样的 5 00:00:11,490 -->…

html+CSS+js部分基础运用18

1. 按键修饰符的应用。①姓名&#xff1a;按下回车键时调用方法输出“姓名-密码”&#xff1b;②密码&#xff1a;按下shift回车时调用方法输出“姓名密码” 图1 初始效果图 图2 按键修饰符效果图 2. 仿淘宝Tab栏切换&#xff0c;熟悉…

MySQL使用

登录目标数据库 mysql -u root -p123456或指定编码格式登录 mysql -uroot -p密码 --default-character-setutf8 --socketmysql.sock -Amysql > select version();//查看版本号 show databases;//查看数据库有哪些 use xxx; show tables; show create database practice; …

对待谷歌百度等搜索引擎的正确方式

对待百度、谷歌等搜索引擎的方式是&#xff0c;你要站在搜索引擎之上&#xff0c;保持自己的独立思想和意见。 当谷歌宣布他们将会根据一个名为“Alphabet”的新控股公司来进行业务调整时&#xff0c;在科技界引起了一片恐慌之声。 永远不要说这是一个公司一直在做的事情。不…

攻防世界---misc---What-is-this

1、下载附件&#xff0c;是一个.gz的文件夹&#xff0c;是linux系统的压缩包后缀 2、在kali中解压&#xff0c;解压之后得到两张图片 3、想把图片拖在物理机中分析&#xff0c;但是拖不了&#xff0c;所以将.gz文件在物理机中改为.zip&#xff0c;解压之后看到了一个没有后缀的…

TensorFlow2.x基础与mnist手写数字识别示例

文章目录 Github官网文档Playground安装声明张量常量变量 张量计算张量数据类型转换张量数据维度转换ReLU 函数Softmax 函数卷积神经网络训练模型测试模型数据集保存目录显示每层网络的结果 TensorFlow 是一个开源的深度学习框架&#xff0c;由 Google Brain 团队开发和维护。它…

负反馈放大电路

开环放大倍数&#xff1a;放大电路没有加反馈时的放大倍数A 闭环放大倍数&#xff1a;电路加了反馈信号的放大倍数Af。反馈信号和输出信号的比值称为反馈系数F。 三极管各极电压变化关系 1&#xff0c;三极管的基极和发射极之间是同相关系&#xff0c;当基极电压上升&#x…

CTFHUB-SQL注入-字符型注入

目录 查询数据库名 查询数据库中的表名 查询表中数据 总结 此题目和上一题相似&#xff0c;一个是整数型注入&#xff0c;一个是字符型注入。字符型注入就是注入字符串参数&#xff0c;判断回显是否存在注入漏洞。因为上一题使用手工注入查看题目 flag &#xff0c;这里就不…

rk3568 norflash+pcei nvme 配置

文章目录 rk3568 norflashpcei nvme 配置1&#xff0c;添加parameter_nor.txt文件2 修改编译规则3 修改uboot4 修改BoardConfig.mk5 修改kernel pcei配置6 编译7 烧录 rk3568 norflashpcei nvme 配置 1&#xff0c;添加parameter_nor.txt文件 device/rockchip/rk356x/rk3568_…

【面试干货】 Hash 索引和 B+树索引的区别

【面试干货】 Hash 索引和 B树索引的区别 1、Hash 索引2、B 树索引3、区别和适用场景 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在数据库中&#xff0c;索引是一种重要的数据结构&#xff0c;用于加速查询操作。常见的索引包括 Hash 索…