【Maven】项目创建
3. Maven的应用
本章主要内容:
- 使用 Maven 创建 JavaSE 项目
- 使用 Maven 创建 JavaWeb 项目,在本地部署 Tomcat 测试
- 导入 Maven 项目
3.1 基于Maven开发JavaSE的项目
3.1.1 流程
1、File—>new—>Project—>Empty Project
Location:D:\course\10-Maven\code
Name:mavenall
—>Create
2、ctrl + alt + shift + s:打开项目结构窗口
Project:设置 JDK 版本为 1.8
Modules: —> New Module
Build system:Maven
3、Advanced Settings
GroupId:cn.myphoenix
ArtifactId:maven_001_javase
—>Create
4、观察 Sources 和 Dependcies 选项的 JDK 版本都是 1.8
—> ok
5、补齐目录
在 test 目录上右键 —> new Directory—> resouces
6、修改 pom.xml 文件
添加单元测试的依赖:
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies>
3.1.2 测试
在 src/main/java/cn.myphoenix 目录下创建 MathCalculate 类:
public class MathCalculate {// 加法计算public int sum(int a, int b) {return a + b;}// 乘法计算public int mul(int a, int b) {return a * b;}}
在 src/test/java 目录下创建测试类,在测试类中编写测试方法,用于测试类 MathCalculate 中定义的方法。测试方法的规范:
- 访问权限是 public
- 方法没有返回值 void
- 方法名称自定义,推荐以 test 开头
- 方法没有参数
- 使用 @Test 注解声明是测试方法
public class MathCalculateTest {@Testpublic void testSum() {MathCalculate mathCalculate = new MathCalculate();System.out.println(mathCalculate.sum(4, 5));}@Testpublic void testMul() {MathCalculate mathCalculate = new MathCalculate();System.out.println(mathCalculate.mul(4, 5));}
}
3.2 基于Maven开发JavaWeb的项目
1、删除 maven_01_javaSE.iml 文件(如果此文件位于项目目录下,则必须删除,如果在本模块目录下,就不需要删除)
2、ctrl+alt+shift+s:打开结构窗口
- Modules 选项上—> + —>new Module
- Maven Archetype 选项
- Archetype:maven-archetype-webapp
- Advanced Settings 选项卡
- GroupId:cn.myphoenix
- ArtifactId:maven_02_javaweb
- Version:1.0.0
—>Create
3、观察 Sources 和 Dependcies 选项的 JDK 版本
—>ok
4、修改目录
- 补齐缺失的所有目录
- 添加 package:cn.myphoenix.controller
- 修改 pom.xml 文件
-
删除远程访问的名称
-
<name>maven_002_javaweb Maven Webapp</name> <url>http://maven.apache.org</url> -
添加依赖
-
<!--添加Servlet的依赖--> <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version> </dependency> -
删除项目构建名称
-
<build><finalName>maven_002_javaweb</finalName> </build>
-
5、修改 web.xml 文件
- ctrl+alt+shift+s:打开结构窗口
- 点 web —> - —>yes —> Apply —>web.xml —>ok —>ok
6、修改 jsp 页面
- 删除 index.jsp 页面
- 在 webapp 目录下新建 index.jsp 和 main.jsp
- 开发
index.jsp 页面
7、开发 Servlet
@WebServlet("/demo")
public class DemoServlet extends HttpServlet {/*** 客户端 : <a href="/demo">访问服器</a>*/@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("服务器被访问到了..............");req.getRequestDispatcher("/main.jsp").forward(req,resp);}
}
- 添加 Tomcat 测试运行。
相关文章:
【Maven】项目创建
3. Maven的应用 本章主要内容: 使用 Maven 创建 JavaSE 项目使用 Maven 创建 JavaWeb 项目,在本地部署 Tomcat 测试导入 Maven 项目 3.1 基于Maven开发JavaSE的项目 3.1.1 流程 1、File—>new—>Project—>Empty Project Location࿱…...
number的++和--运算 C#
number10 请计算num number --number - number number就是先对number运算,然后再给number赋值--number 先给number赋值,再拿来运算 using System;class Program {static void Main(string[] args){int number 10;int a, b, c, number1, number2;…...
浅谈网络 | 应用层之HTTPS协议
目录 对称加密非对称加密数字证书HTTPS 的工作模式重放与篡改 使用 HTTP 协议浏览新闻虽然问题不大,但在更敏感的场景中,例如支付或其他涉及隐私的数据传输,就会面临巨大的安全风险。如果仍然使用普通的 HTTP 协议,数据在网络传输…...
2、Three.js初步认识场景Scene、相机Camera、渲染器Renderer三要素
三要素之间关系: 有了虚拟场景Scene,相机录像Camera,在相机小屏幕上看到的Renderer Scene当前空间 Mesh人在场景 Camera相机录像 Renderer显示器上 首先先描述下Scene: 这个场景为三要素之一,一切需要展示的东西都需…...
Deepwave 声波正演和弹性波正演
Deepwave Deepwave 调用 scalar 方法实现声波和弹性波正演。 ######## 声波正演 ###################### import torch import numpy as np import deepwave from deepwave import scalardevice torch.device(cuda if torch.cuda.is_available()else cpu)## Set observation…...
【WRF-Urban】多层建筑能源参数化模型概述:原理
【WRF-Urban】多层建筑能源参数化模型概述:原理 1 概述1.1 原理1.2 使用步骤 2参考 多层建筑能源参数化(Multi-layer Building Energy Parameterization, BEP)模型是一种用于模拟城市环境中多层建筑群的能量交换和微气候影响的参数化模型。该…...
基于Qt实现的自定义树结构容器:设计与应用
在Qt框架中,尽管其提供了许多强大的容器类(如 QList, QMap, QTreeWidget 等),但缺少一个通用的、灵活的树结构容器,直接支持多层级数据管理。为了满足这些需求,本文设计并实现了一个可复用的自定义树结构容…...
网络命令Linux
目录 一,Linux 二,CMD 一,Linux ping www.baidu.com 测试联网 -c 2 次数,ping几次 , -i 间隔 -W timeout 超时时间,等待响应的超时时间 ss -lntup |grep -w 22 netstat -lntup |grep -w 22 lsof -i:22 ls…...
简单的Activiti Modoler 流程在线编辑器
简单的Activiti Modoler 流程在线编辑器 1.需求 我们公司使用的流程是activiti5.22.0,版本有些老了,然后使用的编辑器都是eclipse的流程编辑器插件,每次编辑流程需要打开eclipse进行编辑,然后再导入到项目里面,不是特…...
【NodeJS】Express写接口的整体流程
前提条件 开发 Node.js,首先就必须要安装 Node.js。推荐使用 nvm,它可以随意切换 node 版本。下载 nvm,具体可以看本人另一篇文章:nvm的作用、下载、使用、以及Mac使用时遇到commond not found:nvm如何解决。 nvm官方࿱…...
Oracle 锁表的解决方法及避免锁表问题的最佳实践
背景介绍 在 Oracle 数据库中,锁表或锁超时相信大家都不陌生,是一个常见的问题,尤其是在执行 DML(数据操作语言)语句时。当一个会话对表或行进行锁定但未提交事务时,其他会话可能会因为等待锁资源而出现超…...
关于 vue+element 日期时间选择器 限制只能选当天以及30天之前的日期
业务需求,需要实现选择当天以及30天之前的日期,于是我想到的是利用picker-options去限制可选范围 代码如下 <el-date-pickerv-model"searchData.acceptTime"type"datetimerange"value-format"yyyy-MM-dd hh:mm:ss"styl…...
租辆酷车小程序开发(二)—— 接入微服务GRPC
vscode中golang的配置 设置依赖管理 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct GO111MODULEauto 在$GOPATH/src 外面且根目录有go.mod 文件时,开启模块支持 GO111MODULEoff 无模块支持,go会从GOPATH 和 vendor 文件夹寻找包…...
如何在 Ubuntu 22.04 上安装 Metabase 数据可视化分析工具
简介 Metabase 提供了一个简单易用的界面,让你能够轻松地对数据进行探索和分析。通过本文的指导,你将能够在 Ubuntu 22.04 系统上安装并配置 Metabase,并通过 Nginx 进行反向代理以提高安全性。本教程假设你已经拥有了一个非 root 用户&…...
MySQL 用户与权限管理
MySQL 是一种广泛使用的关系型数据库管理系统,支持多用户访问和权限控制。在多用户环境下,数据库安全至关重要,而用户和权限管理是数据库管理中最基础也是最重要的一部分。通过合理地创建和管理用户、分配和管理权限、使用角色权限,可以有效地保护数据库,确保数据的安全性…...
【Web前端】如何构建简单HTML表单?
HTML 表单是 Web 开发中非常重要的组成部分。它们是与用户交互的主要方式,能够收集用户输入的数据。表单的灵活性使它们成为 HTML 中最复杂的结构之一,但若使用正确的结构和元素,可以确保其可用性和无障碍性。 表单的基本结构 HTML 表单使用…...
Spring Boot 3 集成 Spring Security(3)数据管理
文章目录 准备工作新建项目引入MyBatis-Plus依赖创建表结构生成基础代码 逻辑实现application.yml配置SecurityConfig 配置自定义 UserDetailsService创建测试 启动测试 在前面的文章中我们介绍了 《Spring Boot 3 集成 Spring Security(1)认证》和 《…...
书生大模型实战营第四期-入门岛-4. maas课程任务
书生大模型实战营第四期-入门岛-4. maas课程任务 任务一、模型下载 任务内容 使用Hugging Face平台、魔搭社区平台(可选)和魔乐社区平台(可选)下载文档中提到的模型(至少需要下载config.json文件、model.safetensor…...
Spring ApplicationListener监听
【JavaWeb】Spring ApplicationListener-CSDN博客 ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。事件发布…...
K8s调度器扩展(scheduler)
1.K8S调度器 筛选插件扩展 为了熟悉 K8S调度器扩展步骤,目前只修改 筛选 插件 准备环境(到GitHub直接下载压缩包,然后解压,解压要在Linux系统下完成) 2. 编写调度器插件代码 在 Kubernetes 源代码目录下编写调度插件…...
GG3M 元模型完整详解:从东方哲学数学化到文明级智慧操作系统
GG3M 元模型完整详解:从东方哲学数学化到文明级智慧操作系统摘要: GG3M 是全球首个以贾子理论(Kucius Theory)为核心、定位文明级智慧操作系统的 AGI 项目。其元模型(Meta-Model)以 3M 三层架构(…...
避坑指南:用conda一键搞定gymnasium[box2d]安装(附常见错误解决方案)
Conda环境下的gymnasium[box2d]高效安装与疑难排解全攻略 强化学习实践者常会遇到一个令人头疼的问题:在Windows系统上安装gymnasium[box2d]时,总是遭遇各种编译错误和依赖问题。本文将带你彻底解决这个痛点,通过conda环境管理工具࿰…...
Rufus高效启动盘制作实战攻略:30分钟从入门到精通
Rufus高效启动盘制作实战攻略:30分钟从入门到精通 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 系统重装难题如何高效解决? 当你的电脑遭遇系统崩溃、病毒入侵或需要全…...
腾讯验证码攻防新篇:六宫格、滑块与文字识别的毫秒级破解实战
1. 腾讯验证码体系深度解析 腾讯验证码作为当前互联网安全防护的重要组成部分,已经发展出包括六宫格、图标点选、滑块验证和文字识别在内的多种形式。这些验证码在设计时充分考虑了人机交互的特点,通过视觉识别和行为分析双重机制来区分真实用户和自动化…...
RocketMQ Dashboard监控告警配置全攻略:集成Prometheus+Grafana+钉钉
RocketMQ企业级监控告警体系构建指南:从Dashboard到智能预警 1. 监控体系架构设计基础 在分布式消息中间件的运维实践中,一套完善的监控告警系统如同人体的神经系统,能够实时感知集群状态并及时响应异常。RocketMQ Dashboard作为官方提供的管…...
Flutter开发必备:GetX路由管理实战技巧(含完整Demo)
Flutter开发必备:GetX路由管理实战技巧(含完整Demo) 如果你正在使用Flutter开发应用,却对原生路由管理的繁琐感到头疼,GetX的路由管理方案或许能让你眼前一亮。这个轻量级库不仅简化了页面跳转、传值等基础操作&#x…...
告别AN模式调试噩梦:ZYNQ千兆网用MDIO+ethtool手动配置速率,稳定性提升实测
告别AN模式调试噩梦:ZYNQ千兆网用MDIOethtool手动配置速率,稳定性提升实测 在工业自动化、车载电子等复杂电磁环境中,ZYNQ平台的千兆以太网连接稳定性常常成为工程师的痛点。当系统默认的自动协商(AN)模式频繁失效&…...
告别黑苹果配置噩梦:5大核心优势让开源工具OpCore-Simplify成为新手救星
告别黑苹果配置噩梦:5大核心优势让开源工具OpCore-Simplify成为新手救星 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 黑苹果配置一直是…...
如何让键盘听懂你的设备语言?设备条件判断打造智能多设备键盘映射方案
如何让键盘听懂你的设备语言?设备条件判断打造智能多设备键盘映射方案 【免费下载链接】Karabiner-Elements Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra (10.12) or later. 项目地址: https://gitcode.com/gh_mirrors…...
如何通过内置实时地图彻底解决黑神话悟空中的迷路问题:终极导航指南
如何通过内置实时地图彻底解决黑神话悟空中的迷路问题:终极导航指南 【免费下载链接】wukong-minimap 黑神话内置实时地图 / Black Myth: Wukong Built-in real-time map 项目地址: https://gitcode.com/gh_mirrors/wu/wukong-minimap 在《黑神话:…...
