Maven项目的配置
Maven是什么?它的作用是什么?
Maven是一种开源的构建工具,它可以自动化构建、测试、部署和管理Java项目。它提供了一个中心化的构建过程,包括依赖管理、项目结构管理、插件管理等,使得开发人员更方便地维护和协作应用程序。Maven项目可以简化软件开发的流程,减少了人为因素的干扰,提高了整个开发过程的效率和质量。
Maven的主要作用包括:
- 依赖管理:自动管理项目所需的所有依赖关系,包括依赖版本的管理、依赖库的下载和更新等。
- 项目结构管理:规范化项目文件结构和编译、测试、打包等过程,增强项目的可维护性。
- 插件管理:提供一些常用的插件,例如进行代码质量检查、测试覆盖率、打包等。
- 构建过程自动化:自动执行构建、测试、安装和部署等基本工作,减少手动操作,提高效率和效果。
- 可扩展性:开发人员可以自定义插件,扩展Maven的功能和适应特定需求。
什么是依赖大于配置?
Maven中的依赖大于配置"是指Maven在进行项目构建时,会自动下载和管理项目的第三方依赖库,并将这些依赖库添加到项目的Classpath中,无需手动进行配置。换句话说,项目的依赖关系比手工配置简单,更易于维护,减少了代码的冗余,提高了项目的可重用性。因此,Maven的依赖管理机制被称为“依赖大于配置(Convention over configuration)。
如何创建一个web项目?
1、创建一个Maven项目,在Archetype中添加web项目,就是Maven下面的webapp,如果想创建一个普通项目,就点击创建即可,但是需要在普通项目添加web项目需要的资源
2、创建成功后,会得到下面的界面,src中会有resources资源包和webapp项目包
当然如果没有这些就需要自己去创建,有两种方式:
第一种,右键,标记创建的包是什么类型
第二种,点击项目结构,点击模块,然后点击项目,再点击source,选中包就可以标记
3、配置tomcat,步骤如下:
第一步,点击当前文件,点击编辑配置,如下图
第二步,添加新配置,点击"+",往下翻就可以找到tomcat服务器,选择本地
第三步,进行配置这些,第一次用idea需要配置这些
第四步,进入修复界面,这里需要注意
6、点击应用、确定后,就可以运行项目了,我改的路径是斜杠(/),所以默认是8080,如果这个路径写成s1,就是http://localhost:8080/s1,这个过程叫做虚拟路径映射
还想跟大家说一下,在项目部署之前会产生一个target文件夹
target文件夹产生的原因:
在idea中,当我们创建一个Maven项目时,项目结构中就会自动生成一个名为"target"的文件夹。这个文件夹包含了我们需要的编译后的代码、静态资源和其他工具。
在Maven中,"target"文件夹是默认的输出目录,也就是说,编译后的代码等文件就会输出到这个文件夹内。这是因为Maven是一个依赖管理工具,其主要功能是帮助我们自动下载依赖库并编译构建项目。所有的构建结果都会输出到"target"文件夹中,方便我们进行调试和部署。
此外,"target"文件夹还包含了一些其他目录,如"classes"、"test-classes"和"generated-sources"等,这些目录存放编译后的Java类文件、测试类文件和自动生成的代码等。
因此,在idea中,产生"target"文件夹的主要原因是为了存放编译后的代码等文件,以方便我们进行调试和部署。
讲讲Maven中的pom文件,这个文件是pom的核心配置文件,Maven项目创建完成,右边会有一个Maven,点击打开,就会看到下图,生命周期是Maven的命令行操作;插件看自己的需要;
依赖项就是导入的依赖包,当你在pom中导入jar包后,依赖项就会加载;
安装好Maven,可以在Maven中创建一个Maven仓库,里面可以下载一些jar包,当然如果仓库没有jar可以在https://mvnrepository.com/https://mvnrepository.com/
上面这个连接是Maven的仓库,可以下载jar,也可以下pom依赖,看自己的需要
jar包和war包的作用?
刚刚提到jar,那我解释一下他是干嘛的,以及和war的区别
jar和war都是Java程序包,用于打包和部署Java应用程序。
Jar(Java Archive)是一种压缩文件格式,其中包含Java类文件、资源文件、配置文件以及其它任何需要的文件。通常用于打包Java库、工具类和小型应用程序。
War(Web Archive)则是一种专门用于打包Web应用程序的格式。除了包含Java类和资源文件以外,还包括HTML、CSS、JavaScript、JSP、Servlet、XML等Web相关文件。War文件通常部署在Java Web服务器上。
因此,如果开发者想要打包一个Java库或小型应用程序,可以选择使用jar格式;如果要打包Web应用程序,则使用war格式更为合适。
为什么需要打包?
打jar包是将Java代码打包成可执行的文件,可以方便地部署和运行Java应用程序。打jar包的好处包括:
-
方便部署和传输:将所有依赖的类、库和资源文件打包成一个文件,可以方便地分发给其他人或在不同的环境中部署。
-
提高运行效率:将代码打包成jar可以减少资源的调用次数,提高程序的运行效率。
-
提高代码安全性:将代码打包成jar可以保护代码的知识产权,防止代码被篡改和盗用。
-
方便管理:将Java应用程序打包成jar可以方便地进行版本管理和控制。
-
提高用户体验:将Java应用程序打包成jar可以方便地启动和运行,提高用户体验。
jar包和war包的区别?
JAR包和WAR包都是Java程序的打包格式,不同之处在于:
JAR包:
- JAR(Java Archive)是Java程序中常用的打包格式,可以包含Java代码、类、资源文件等。
- JAR包是一个可执行的程序,可以直接在Java虚拟机上运行,也可以被其他程序引用。
- JAR包通常用于打包Java库、组件或应用程序。
WAR包:
- WAR(Web Application Archive)是Web应用程序中常用的打包格式,可以包含Web应用程序的所有资源、JSP/Servlet文件、配置文件、类文件、Jar包等。
- WAR包是一个Web应用程序的打包文件,可以部署到Web服务器上。
- WAR包通常用于打包Web应用程序,例如JSP、Servlet、HTML、CSS、JavaScript等静态和动态的Web页面。
总之,JAR包适用于Java程序的打包部署,WAR包则适用于Web应用程序的打包部署。
相关文章:
Maven项目的配置
Maven是什么?它的作用是什么? Maven是一种开源的构建工具,它可以自动化构建、测试、部署和管理Java项目。它提供了一个中心化的构建过程,包括依赖管理、项目结构管理、插件管理等,使得开发人员更方便地维护和协作应用…...
Spring Boot使用(基础)
目录 1.Spring Boot是什么? 2.Spring Boot使用 2.1Spring目录介绍 2.2SpringBoot的使用 1.Spring Boot是什么? Spring Boot就是Spring脚手架,就是为了简化Spring开发而诞生的 Spring Boot的优点: 1.快速集成框架,提供了秒级继承各种框架,提供了启动添加依赖的功能 2.内…...
6WINDGate-overview
6WINDGate Overview Author:Once Day Date:2023年4月29日 本文是对6WIND官网文档的整理和翻译,仅供学习和研究之用,原始文章可参考下面文档: 6WINDGate Documentation - 6WIND6WINDGate Modules — 6WINDGate Modul…...
Java8新特性-流式操作
在Java8中提供了新特性—流式操作,通过流式操作可以帮助我们对数据更快速的进行一些过滤、排序、去重、最大、最小等等操作并且内置了并行流将流划分成多个线程进行并行执行,提供更高效、快速的执行能力。接下来我们一起看看Java8为我们新增了哪些便捷呢…...
Nautilus Chain Layer 3 圆桌会议圆满举办,超4.8K用户观看
在 4 月 21 日,Nautilus Chain 举办了以 “Layer 3 区块链的意义和发展以及Crypto的演变”为主题的线上圆桌会议,我们邀请了众多行业嘉宾包括 GitcoinDAO社区管理者Bob jiang、Whalers Community 发起者崔棉大师、Chatpuppy 联合创始人 古千峰、Whalers …...
本地elasticsearch中文分词器 ik分词器安装及使用
ElasticSearch 内置了分词器,如标准分词器、简单分词器、空白词器等。但这些分词器对我们最常使用的中文并不友好,不能按我们的语言习惯进行分词。 ik分词器就是一个标准的中文分词器。它可以根据定义的字典对域进行分词,并且支持用户配置自…...
Java 中的异常处理机制是什么?如何使用它来处理程序中的异常?(七)
Java 中的异常处理机制是一种重要的编程技术,它能够帮助程序员更好地管理程序中出现的异常情况。本文将详细介绍 Java 中的异常处理机制,并提供示例来说明如何使用异常处理机制来捕获和处理程序中的异常。 什么是异常? 在程序运行过程中&am…...
基于UDQ的并网单相逆变器控制【同步参考系下单相并网全桥正弦PWM逆变器闭环控制】(Simulink)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
JAVA开发——常用的注解
目录 spring spring MVC Spring Boot AOP MyBatis MyBatis-Plus JavaWeb开发 spring Autowired:自动安装,通过类匹配自动注册相应的Bean。 Component:将一个通用的 Java 类标记为 Bean,由 Spring 容器管理。 Controller&…...
【Java笔试强训 24】
🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥年终奖 …...
SpringCloud详解
SpringCloud是一个基于SpringBoot的分布式系统开发框架,它能够帮助我们快速、稳定地构建分布式系统。本篇博客将对SpringCloud进行详细解析,介绍SpringCloud的主要组件和相关应用场景,同时提供代码示例以帮助读者更好地掌握SpringCloud的实际…...
如何保障网络安全
网络安全是一个涵盖范围广、深入浅出的话题。随着互联网在现代社会中扮演的重要角色日益突出,网络安全问题成为各个领域所关注的焦点。在此,我们将从以下几个方面来阐述网络安全的重要性,并讨论几种保障网络安全的方式。 一、网络安全的重要性…...
网络基础:socket套接字
文章目录 1. 前导知识1.1 源MAC地址和目的MAC地址1.2 源IP地址和目的IP地址1.3 MAC地址和IP地址的配合1.4 源端口号和目的端口号1.5 Socket1.6 UCP协议和TCP协议1.7 网络字节序高低位高低地址大端和小端网络字节序常用转换函数 2. socket 网络编程2.1 socket 常见接口创建套接字…...
程序员如何学好PHP?做好这五个方面就够了
今天我想和大家分享一下程序员的第一份工作对自己的意义以及影响。首先,我们都知道第一份工作很重要,因为它决定了你以后的职业生涯的方向。你的第一份工作做的什么方向,很可能就是你以后职业生涯中最主要的方向。对我个人而言,我…...
【开源项目】Build your own X 构建自己的项目
【开源项目】Build your own X 构建自己的项目 简介 Build your own X 是一个精心收集了大量资源的项目指南,可以通过从头开始重新创建我们最喜爱的技术来掌握编程。 项目地址: https://github.com/codecrafters-io/build-your-own-x这些项目里的资源…...
在.NET Core中正确使用HttpClient的方式
HttpClient 是 .NET Framework、.NET Core 或 .NET 5以上版本中的一个类,用于向 Web API 发送 HTTP 请求并接收响应。它提供了一些简单易用的方法,如 GET、POST、PUT 和 DELETE,可以很容易地构造和发送 HTTP 请求,并处理响应数据。…...
【C++】位运算类题目总结
文章目录 一. 位运算符脑图二. 相关题目1. 统计二进制数中0的个数2. 数组中只出现一次的数字3. 数组中只出现一次的数字 II4. 不用加减乘除做加法 一. 位运算符脑图 二. 相关题目 1. 统计二进制数中0的个数 解题思路:x & (x-1);它的作用是每次循环…...
Node服务端开发【NPM】
文章目录 前言NPM使用NPM使用场景NPM的常用命令NPM命令使用介绍使用NPM安装模块下载三方包全局安装VS本地安装本地安装全局安装全局模块路径查看与路径修改 卸载模块更新模块搜索模块NPM服务器发布包 NPM换源nrm全局安装 nrm:nrm ls 列出来现在已经配置好的所有的原地址nrm use…...
Doris(21):Doris的函数—日期函数
1 CONVERT_TZ(DATETIME dt, VARCHAR from_tz, VARCHAR to_tz) 转换datetime值dt,从 from_tz 由给定转到 to_tz 时区给出的时区,并返回的结果值。 如果参数无效该函数返回NULL。 select convert_tz(2019-08-01 13:21:03, Asia/Shanghai, America/Los_Angeles); select co…...
和月薪5W的阿里程序员聊过后,才知道自己一直在打杂...
前几天和一个朋友聊面试,他说上个月同时拿到了腾讯和阿里的offer,最后选择了阿里。 阿里内部将员工一共分为了14个等级,P6是资深工程师,P7是技术专家。 其中P6和P7就是一个分水岭了,P6是最接近P7的不持股员工&#x…...
西门子PLC沿脉冲类指令汇总
S7-1200CPU提供了四种沿脉冲指令供用户使用,分别为:扫描操作数信号边沿指令、在信号边沿置位操作数的指令、扫描RLO的信号边沿指令以及检测信号边沿指令。 信号从0--1的时刻称为上升沿,信号从1--0的时刻称为下降沿,不管是上升沿还…...
软件多语言文案脚本自动化方案
开发高效提速系列目录 软件多语言文案脚本自动化方案 软件多语言文案脚本自动化方案 背景目标整体方案1. 创建文案资源文件2. python脚本开发3. Python脚本执行与管理4. 人员职责分配 PyCharm使用说明1. PyCharm下载2. PyCharm安装配置3. 异常情况解决 总结 博客创建时间&…...
C++017-C++文件读写应用
文章目录 C017-C文件读写应用C文件读写应用CSP-J目标1. 文件的基本概念、文本文件的基本操作2.文本文件类型与二进制文件类型文本文件类型二进制文件类型二进制查看工具 3.文件重定向、文件读写等操作关闭文件文件操作-写入文本文件文件操作-读取文本文件文件操作-写入二进制文…...
计算机网络 实验二
⭐计网实验专栏,欢迎订阅与关注! ★观前提示:本篇内容为计算机网络实验。内容可能会不符合每个人实验的要求,因此以下内容建议仅做思路参考。 一、实验目的 (1)掌握IP地址的基本结构(网络部分与主机部分的…...
Unity 3D 学习笔记(1)
文章目录 1.Unity 3D 概述2.Unity的安装过程3.Unity 3D 的项目管理4.Unity 3D 中的场景5.Unity 3D 的界面组成 1.Unity 3D 概述 Unity 3D简介:Unity 3D是虚拟现实行业中使用率较高的一款开发引擎,由Unity Technology公司开发。通过Unity,开发…...
P1050 [NOIP2005 普及组] 循环
题目描述 乐乐是一个聪明而又勤奋好学的孩子。他总喜欢探求事物的规律。一天,他突然对数的正整数次幂产生了兴趣。 众所周知,22 的正整数次幂最后一位数总是不断的在重复 2,4,8,6,2,4,8,6…2,4,8,6,2,4,8,6… 我们说 22 的正整数次幂最后一位的循环长度…...
软考算法-排序篇-上
数据排序 一:故事背景二:直接插入排序2.1 概念2.2 画图表示2.3 代码实现2.4 总结提升 三:希尔排序3.1 概念3.2 画图表示3.3 代码实现3.4 总结提升 四:直接选择排序4.1 概念4.2 画图表示4.3 代码实现4.4 总结提升 五:堆…...
总结836
学习目标: 4月(复习完高数18讲内容,背诵21篇短文,熟词僻义300词基础词) 学习内容: 暴力英语:背诵《keep your direction》,默写,英语语法 高等数学:刷题&a…...
ginbuilder 工具快速创建
ginbuilder github 地址 快速创建一个ginweb项目: 目前apps下只有http服务,如果后续有需要的话,会添加上rpc服务,websocket服务后边如果有需要会添加上swagger 创建完成的目录结构 ├── apps │ ├── apis // 所有的apis…...
【Java基础面试宝典】堆、栈、方法区分别都存储了那些内容?wait 和 sleep 方法的区别?
目录 堆、栈、方法区分别都存储了那些内容? 堆(heap) 栈(stack) 方法区(method) 在 java 中 wait 和 sleep 方法的区别? 堆、栈、方法区分别都存储了那些内容? 堆&a…...
wordpress 自定义主页/平台优化
在敏捷、DevOps盛行的时代,人们关注CI/CD、工具链,追求快速迭代,追求效率,但往往欲速则不达,因为忽视了架构设计和项目管理。 众所周知,开发速度越快,架构设计更要力求简单,以有利于…...
wordpress menu插件/长沙关键词优化公司电话
这是一篇讨论Node.js在无需修改任何代码从单核垂直扩展到多核,再水平扩展到多台集群和消息集成的分布式系统,展示了Node.JS在无缝扩展性方面要强于Java。其主要架构是Node.js微服务 消息Messaging 集群Clustering 。翻译如下: 当使用微服务…...
怎样用微信做购物网站/网络营销案例范文
昨天帮人看了一个界面小程序代码,是用python写的,用的是tkinter库。我是macOS Catalina10.15.5,我python是3.6.6用的是pyenv安装的虚拟环境。导入tkinter库的时候出现了错误“ModuleNotFoundError: No module named ‘_tkinter”,…...
网站开发使用的软件/google搜索下载
随着SPA应用程序的普及,前端开发中对路由的操作越来越离不开了,目前基本上前端框架中的路由都是基于hash和history模式,在大量使用之余我们也理应该去窥探一下它他们的真面hashhash模式的原理其实非常简单,它提供了一个onhashchan…...
丰台区网站建设/市场调研方法
目录 题目1:最长递增子序列 题目2:最长公共子序列 题目1:最长递增子序列 思路: 如果是用动态规划的话,我们就要先清楚dp[i]表示啥,里面的i表示啥。首先这道题的 i 表示给的数组nums的各个元素的下标。dp[…...
广州越秀区天气预报15天查询/乐陵seo优化
在前面随笔《基于Metronic的Bootstrap开发框架--工作流模块功能介绍》和《基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)》中介绍了Bootstrap开发框架的工作模块功能,前面文章也提及,通过代码生成工具直接生成对应的Cr…...