Java项目管理与SSM框架介绍

Maven简介

Maven是一个项目管理工具。它可以帮助程序员构建工程,管理jar包,编译代码,完成测试,项目打包等等。Maven工具是基于POM(Project Object Model,项目对象模型)实现的。在Maven的管理下每个项目都相当于是一个对象。Maven标准化了项目的构建。即对项目结构,构建命令等进行了标准化定义。Maven提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源类库。Maven是跨平台的,在Windows、Linux、Mac上,都可以使用同样的命令。

Maven的作用

一键构建我们的项目往往都要经历编译、测试、运行、打包、安装,部署等一系列过程,这些过程称之为构建。通过Maven工具,可以使用简单的命令轻松完成构建工作。依赖管理传统的Web项目中,我们必须将工程所依赖的jar包复制到工程中,导致了工程的变得很大。如果一个公司具有相同架构的项目有十个,那么就需要将这一份jar包复制到十个不同的工程中,非常浪费资源。同样的项目内容,传统Web项目大小如下:

而使用Maven构建的项目大小如下:

这说明了传统Web项目中大部分磁盘空间是被jar包占据,而Maven项目中一定没有jar包,那没有jar包的项目是怎么运行的呢?

maven工程中不直接将jar包导入到工程中,而是有一个专门存放jar包的仓库,仓库中的每个jar包都有自己的坐标。maven工程中只要配置jar包坐标即可,运行项目需要使用jar包时,根据坐标即可从maven仓库中拿到jar包即可运行。

Maven的安装

安装解压下载好的安装文件,解压后目录结构如下

bin:存放maven的命令boot:存放maven本身的引导程序,如类加载器等conf:存放maven的配置文件lib:存放maven本身运行所需的jar包配置环境变量由于Maven是由Java语言开发的,运行时依赖Java环境,所以要在计算机的环境变量中配置JAVA_HOME

Maven工程的类型和结构

Maven工程类型POM工程POM工程是逻辑工程,Maven并不会对该类型工程做打包处理,这些工程往往不包含具体的业务,而是用来整合其他工程的。

JAR工程普通Java工程,在打包时会将项目打成jar包。

WAR工程JAVA Web工程,在打包时会将项目打成war包。Maven工程结构接下来我们通过一个WAR工程学习Maven工程的结构文件目录结构:

maven有三套相互独立的生命周期。分为是构建生命周期,clean生命周期(清理构建后的文件)、site生命周期(生成项目报告)。作为开发人员我们一般重点学习构建生命周期即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字证书的简单记录

CA(Certificate Authority):即数字证书颁发认证机构。 CA数字证书(crt/cer证书):数字证书 申请者与颁发者信息申请者公钥颁发者签名,由CA机构使用私钥签名得到数字证书。 CA中间证书&#xff1…

CGAL生成简单形状

三角形 四边形 立方体 六面体 棱柱 锥体 二十面体 网格 Polyhedron _mesh;/**************三角形************/CGAL::make_triangle(K::Point_3(100, 0, 0), K::Point_3(0, 100, 0), K::Point_3(0, 0, 0), _mesh);CGAL::IO::write_polygon_mesh("F:/WORK/STL/triangle.stl…

【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(2)

前言 大家好吖,欢迎来到 YY 滴计算机网络 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的计算机网络题目,供yy应对期中考试复习。大家可以参考 欢迎订阅 YY滴其他专栏!…

江协科技STM32学习- P30 FlyMCU串口下载STLink Utility

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

【Python】【数据可视化】【商务智能方法与应用】课程 作业一 飞桨AI Studio

作业说明 程序运行和题目图形相同可得90分,图形显示有所变化,美观清晰可适当加分。 import matplotlib.pyplot as plt import numpy as npx np.linspace(0, 1, 100) y1 x**2 y2 x**4plt.figure(figsize(8, 6))# yx^2 plt.plot(x, y1, -., labelyx^2,…

提高后端接口性能的方法

个人bibilailai(不喜请跳过):前几天参加的部门技术分享会,同事分享了一个内容为“提高接口性能的常见技巧”,个人觉得很有用,所以想在这里分享给大家,希望对刚入职场不久的兄弟姐妹们有所帮助。…

.net Core 使用Panda.DynamicWebApi动态构造路由

我们以前是通过创建controller来创建API,通过controller来显示的生成路由,这里我们讲解下如何不通过controller,构造API路由 安装 Panda.DynamicWebApi 1.2.2 1.2.2 Swashbuckle.AspNetCore 6.2.3 6.2.3添加ServiceAction…

ETCD简介

ETCD etcd的使用场景默认处理的数据都是控制数据, 对于应用数据,只推荐数据量很小,但是更新访问频繁的情况 主要用于共享配置和服务发现的组件(激活码验证) 分布式键值(key-value)数据库 基于go语言实现 分布式系…

服务器新建用户

文章目录 前言一、步骤二、问题三、赋予管理员权限总结 前言 环境: 一、步骤 创建用户需要管理员权限sudo sudo useradd tang为用户设置密码 sudo passwd tang设置密码后,可以尝试使用 su 切换到 tang 用户,确保该用户可以正常使用&#…

【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--接口路径管理

从这篇文章开始,我们将为孢子记账增加简易的权限系统,它包含接口路径管理、角色可访问接口管理、访问权限中间件。在本篇文章中我们先实现接口路径管理相关的接口。 一、需求 接口路径管理比较简单,需求和前面的 用户 以及 **角色**的需求类…

NVR监测软件/设备EasyNVR多品牌NVR管理工具/设备对城市安全有哪些具体益处?

在智慧城市的建设中,各种先进的技术系统正发挥着越来越重要的作用。其中,NVR监测软件/设备EasyNVR作为一种高效的视频边缘计算网关,不仅能够实现视频数据的采集、编码和存储,还能与其他智慧城市系统进行深度集成,共同推…

TCP建立连接之后怎么保持长连接(检测连接断没断)

在TCP连接建立后,保持长连接的主要方式是通过定期的心跳检测(Keep-Alive)和超时机制。以下是一些具体的方法和机制 1. TCP Keep-Alive TCP协议本身提供了一种Keep-Alive机制,可以通过以下步骤实现: 启用Keep-Alive&…

速盾:海外cdn高防

随着互联网的快速发展,网站的安全性和稳定性变得越来越重要。尤其是对于大型企业和电商平台来说,保护用户数据和维护网站稳定运行是至关重要的。为了应对日益增长的网络攻击和恶意访问,海外CDN高防服务成为了一种非常受欢迎的解决方案。 首先…

【NOIP提高组】虫食算

【NOIP提高组】虫食算 C语言C 💐The Begin💐点点关注,收藏不迷路💐 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母。来看一个简单的例子: 43#98…

【系统架构设计师】2021年真题论文: 论面向方面的编程技术及其应用(AOP)(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2021年 试题1)解题思路面向方面的编程(AOP)技术概念和原理AOP的核心机制AOP 在软件系统开发中的应用场景AOP 应用案例分析论文素材参考真题题目(2021年 试题1) 面向过程编程是一种自顶向下的编程方…

Lobe Chat:你的私人AI助理

有一天,一位程序员对他的朋友说:‘我希望有一个助手,能像我一样聪明,但不会吃饭、喝水和请病假。’朋友回答说:‘这很简单,你只需要一个智能聊天助手!’于是,程序员便找到了 LobeCha…

【CAPL实战】LIN帧干扰的脚本实现

文章目录 1、帧头干扰响应linDisturbRespWithHeader1.1 函数功能1.2 参数说明1.3 代码实例1.4 执行结果 2、帧头干扰帧头linDisturbHeaderWithHeader2.1 函数功能2.2 参数说明2.3 代码实例 1、帧头干扰响应linDisturbRespWithHeader 1.1 函数功能 使用一个新的header帧头来干…

华为HarmonyOS打造开放、合规的广告生态 - 激励广告

场景介绍 激励广告是一种全屏幕的视频广告,用户可以选择点击观看,以换取相应奖励。 接口说明 接口名 描述 loadAd(adParam: AdRequestParams, adOptions: AdOptions, listener: AdLoadListener): void 请求单广告位广告,通过AdRequestPar…

自由学习记录(18)

动画事件的碰撞器触发 Physics 类的常用方法 RaycastHit hit; if (Physics.Raycast(origin, direction, out hit, maxDistance)) {Debug.Log("Hit: " hit.collider.name); } Physics.Raycast:从指定点向某个方向发射射线,检测是否与碰撞体…

【elkb】创建用户和角色

在使用中我们不能把超管的用户信息给到所有者,我们需要为不用的使用场景创建不同的用户。 登录管理员用户 打开管理页面 创建角色 点击角色,创建角色 填写角色信息 设置Kibana 权限 最后点击创建角色 创建用户 点击用户--->创建用户 填写信息 登录…